summaryrefslogtreecommitdiff
path: root/vendor/github.com/alecthomas/chroma/v2/lexers
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/alecthomas/chroma/v2/lexers
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-c6cc0108ca7738023b45e0eeac0fa2390532dd93.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers')
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/README.md40
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/bash.go17
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go26
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go215
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go39
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/cl.go243
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/cql.go70
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/docker.go32
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go533
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml154
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml66
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml68
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml163
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml321
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml75
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml108
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml317
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml74
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml59
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml130
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml309
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml126
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml95
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml97
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml217
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml660
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml152
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml68
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml141
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml28
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml51
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml326
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml253
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml122
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml151
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml206
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml92
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml134
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml68
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml210
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml184
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml136
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml762
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml115
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml323
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml372
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml130
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml213
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml40
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml153
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml168
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml176
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml743
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml119
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml132
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml166
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml412
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml68
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml159
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml78
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml82
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml245
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml121
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml265
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml263
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml65
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml289
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml112
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml88
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml135
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml147
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml272
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml143
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml189
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml149
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml104
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml216
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml47
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml40
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml71
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml157
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml118
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml159
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml110
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml400
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml98
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml220
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml42
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml73
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml158
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml56
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml114
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml182
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml85
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml270
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml82
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml73
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml245
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml153
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml121
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml124
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml121
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml98
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml207
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml258
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml510
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml145
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml101
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml92
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml96
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml37
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml400
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml211
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml105
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml73
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml119
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml105
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml135
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml89
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml58
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml51
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml150
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml115
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml123
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml118
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml100
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml589
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml356
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml173
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml113
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml127
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml260
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml149
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml236
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml147
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml68
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml127
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml723
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml329
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml191
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml362
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml274
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml106
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml98
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml373
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml61
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml294
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml95
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml279
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml160
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml90
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml63
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml548
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml132
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml207
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml63
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml181
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml69
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml135
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml272
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml121
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml75
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml84
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml140
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml113
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml154
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml42
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml81
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml137
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml82
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml170
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml154
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml261
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml52
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml52
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml162
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml158
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml171
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml305
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml43
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml57
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml95
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml35
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml122
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml99
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml51
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml112
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go38
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go118
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/go.go82
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go645
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/html.go60
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/http.go131
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go73
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/make.go56
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/mako.go62
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go47
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/mason.go44
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go42
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go33
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go49
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/org.go99
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/php.go37
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go16
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go77
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/raku.go1721
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/rst.go89
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go42
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go70
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go85
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/v.go173
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/vim.go39
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/zed.go24
218 files changed, 35585 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/README.md b/vendor/github.com/alecthomas/chroma/v2/lexers/README.md
new file mode 100644
index 0000000..b4ed292
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/README.md
@@ -0,0 +1,40 @@
1# Lexer tests
2
3The tests in this directory feed a known input `testdata/<name>.actual` into the parser for `<name>` and check
4that its output matches `<name>.exported`.
5
6It is also possible to perform several tests on a same parser `<name>`, by placing know inputs `*.actual` into a
7directory `testdata/<name>/`.
8
9## Running the tests
10
11Run the tests as normal:
12```go
13go test ./lexers
14```
15
16## Update existing tests
17When you add a new test data file (`*.actual`), you need to regenerate all tests. That's how Chroma creates the `*.expected` test file based on the corresponding lexer.
18
19To regenerate all tests, type in your terminal:
20
21```go
22RECORD=true go test ./lexers
23```
24
25This first sets the `RECORD` environment variable to `true`. Then it runs `go test` on the `./lexers` directory of the Chroma project.
26
27(That environment variable tells Chroma it needs to output test data. After running `go test ./lexers` you can remove or reset that variable.)
28
29### Windows users
30Windows users will find that the `RECORD=true go test ./lexers` command fails in both the standard command prompt terminal and in PowerShell.
31
32Instead we have to perform both steps separately:
33
34- Set the `RECORD` environment variable to `true`.
35 + In the regular command prompt window, the `set` command sets an environment variable for the current session: `set RECORD=true`. See [this page](https://superuser.com/questions/212150/how-to-set-env-variable-in-windows-cmd-line) for more.
36 + In PowerShell, you can use the `$env:RECORD = 'true'` command for that. See [this article](https://mcpmag.com/articles/2019/03/28/environment-variables-in-powershell.aspx) for more.
37 + You can also make a persistent environment variable by hand in the Windows computer settings. See [this article](https://www.computerhope.com/issues/ch000549.htm) for how.
38- When the environment variable is set, run `go tests ./lexers`.
39
40Chroma will now regenerate the test files and print its results to the console window.
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/bash.go b/vendor/github.com/alecthomas/chroma/v2/lexers/bash.go
new file mode 100644
index 0000000..1ea30f2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/bash.go
@@ -0,0 +1,17 @@
1package lexers
2
3import (
4 "regexp"
5)
6
7// TODO(moorereason): can this be factored away?
8var bashAnalyserRe = regexp.MustCompile(`(?m)^#!.*/bin/(?:env |)(?:bash|zsh|sh|ksh)`)
9
10func init() { // nolint: gochecknoinits
11 Get("bash").SetAnalyser(func(text string) float32 {
12 if bashAnalyserRe.FindString(text) != "" {
13 return 1.0
14 }
15 return 0.0
16 })
17}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go b/vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go
new file mode 100644
index 0000000..bea9393
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/bashsession.go
@@ -0,0 +1,26 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// BashSession lexer.
8var BashSession = Register(MustNewLexer(
9 &Config{
10 Name: "BashSession",
11 Aliases: []string{"bash-session", "console", "shell-session"},
12 Filenames: []string{".sh-session"},
13 MimeTypes: []string{"text/x-sh"},
14 EnsureNL: true,
15 },
16 bashsessionRules,
17))
18
19func bashsessionRules() Rules {
20 return Rules{
21 "root": {
22 {`^((?:\[[^]]+@[^]]+\]\s?)?[#$%>])(\s*)(.*\n?)`, ByGroups(GenericPrompt, Text, Using("Bash")), nil},
23 {`^.+\n?`, GenericOutput, nil},
24 },
25 }
26}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go b/vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go
new file mode 100644
index 0000000..9100efa
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/caddyfile.go
@@ -0,0 +1,215 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// caddyfileCommon are the rules common to both of the lexer variants
8func caddyfileCommonRules() Rules {
9 return Rules{
10 "site_block_common": {
11 // Import keyword
12 {`(import)(\s+)([^\s]+)`, ByGroups(Keyword, Text, NameVariableMagic), nil},
13 // Matcher definition
14 {`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
15 // Matcher token stub for docs
16 {`\[\<matcher\>\]`, NameDecorator, Push("matcher")},
17 // These cannot have matchers but may have things that look like
18 // matchers in their arguments, so we just parse as a subdirective.
19 {`try_files`, Keyword, Push("subdirective")},
20 // These are special, they can nest more directives
21 {`handle_errors|handle|route|handle_path|not`, Keyword, Push("nested_directive")},
22 // Any other directive
23 {`[^\s#]+`, Keyword, Push("directive")},
24 Include("base"),
25 },
26 "matcher": {
27 {`\{`, Punctuation, Push("block")},
28 // Not can be one-liner
29 {`not`, Keyword, Push("deep_not_matcher")},
30 // Any other same-line matcher
31 {`[^\s#]+`, Keyword, Push("arguments")},
32 // Terminators
33 {`\n`, Text, Pop(1)},
34 {`\}`, Punctuation, Pop(1)},
35 Include("base"),
36 },
37 "block": {
38 {`\}`, Punctuation, Pop(2)},
39 // Not can be one-liner
40 {`not`, Keyword, Push("not_matcher")},
41 // Any other subdirective
42 {`[^\s#]+`, Keyword, Push("subdirective")},
43 Include("base"),
44 },
45 "nested_block": {
46 {`\}`, Punctuation, Pop(2)},
47 // Matcher definition
48 {`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
49 // Something that starts with literally < is probably a docs stub
50 {`\<[^#]+\>`, Keyword, Push("nested_directive")},
51 // Any other directive
52 {`[^\s#]+`, Keyword, Push("nested_directive")},
53 Include("base"),
54 },
55 "not_matcher": {
56 {`\}`, Punctuation, Pop(2)},
57 {`\{(?=\s)`, Punctuation, Push("block")},
58 {`[^\s#]+`, Keyword, Push("arguments")},
59 {`\s+`, Text, nil},
60 },
61 "deep_not_matcher": {
62 {`\}`, Punctuation, Pop(2)},
63 {`\{(?=\s)`, Punctuation, Push("block")},
64 {`[^\s#]+`, Keyword, Push("deep_subdirective")},
65 {`\s+`, Text, nil},
66 },
67 "directive": {
68 {`\{(?=\s)`, Punctuation, Push("block")},
69 Include("matcher_token"),
70 Include("comments_pop_1"),
71 {`\n`, Text, Pop(1)},
72 Include("base"),
73 },
74 "nested_directive": {
75 {`\{(?=\s)`, Punctuation, Push("nested_block")},
76 Include("matcher_token"),
77 Include("comments_pop_1"),
78 {`\n`, Text, Pop(1)},
79 Include("base"),
80 },
81 "subdirective": {
82 {`\{(?=\s)`, Punctuation, Push("block")},
83 Include("comments_pop_1"),
84 {`\n`, Text, Pop(1)},
85 Include("base"),
86 },
87 "arguments": {
88 {`\{(?=\s)`, Punctuation, Push("block")},
89 Include("comments_pop_2"),
90 {`\\\n`, Text, nil}, // Skip escaped newlines
91 {`\n`, Text, Pop(2)},
92 Include("base"),
93 },
94 "deep_subdirective": {
95 {`\{(?=\s)`, Punctuation, Push("block")},
96 Include("comments_pop_3"),
97 {`\n`, Text, Pop(3)},
98 Include("base"),
99 },
100 "matcher_token": {
101 {`@[^\s]+`, NameDecorator, Push("arguments")}, // Named matcher
102 {`/[^\s]+`, NameDecorator, Push("arguments")}, // Path matcher
103 {`\*`, NameDecorator, Push("arguments")}, // Wildcard path matcher
104 {`\[\<matcher\>\]`, NameDecorator, Push("arguments")}, // Matcher token stub for docs
105 },
106 "comments": {
107 {`^#.*\n`, CommentSingle, nil}, // Comment at start of line
108 {`\s+#.*\n`, CommentSingle, nil}, // Comment preceded by whitespace
109 },
110 "comments_pop_1": {
111 {`^#.*\n`, CommentSingle, Pop(1)}, // Comment at start of line
112 {`\s+#.*\n`, CommentSingle, Pop(1)}, // Comment preceded by whitespace
113 },
114 "comments_pop_2": {
115 {`^#.*\n`, CommentSingle, Pop(2)}, // Comment at start of line
116 {`\s+#.*\n`, CommentSingle, Pop(2)}, // Comment preceded by whitespace
117 },
118 "comments_pop_3": {
119 {`^#.*\n`, CommentSingle, Pop(3)}, // Comment at start of line
120 {`\s+#.*\n`, CommentSingle, Pop(3)}, // Comment preceded by whitespace
121 },
122 "base": {
123 Include("comments"),
124 {`(on|off|first|last|before|after|internal|strip_prefix|strip_suffix|replace)\b`, NameConstant, nil},
125 {`(https?://)?([a-z0-9.-]+)(:)([0-9]+)`, ByGroups(Name, Name, Punctuation, LiteralNumberInteger), nil},
126 {`[a-z-]+/[a-z-+]+`, LiteralString, nil},
127 {`[0-9]+[km]?\b`, LiteralNumberInteger, nil},
128 {`\{[\w+.\$-]+\}`, LiteralStringEscape, nil}, // Placeholder
129 {`\[(?=[^#{}$]+\])`, Punctuation, nil},
130 {`\]|\|`, Punctuation, nil},
131 {`[^\s#{}$\]]+`, LiteralString, nil},
132 {`/[^\s#]*`, Name, nil},
133 {`\s+`, Text, nil},
134 },
135 }
136}
137
138// Caddyfile lexer.
139var Caddyfile = Register(MustNewLexer(
140 &Config{
141 Name: "Caddyfile",
142 Aliases: []string{"caddyfile", "caddy"},
143 Filenames: []string{"Caddyfile*"},
144 MimeTypes: []string{},
145 },
146 caddyfileRules,
147))
148
149func caddyfileRules() Rules {
150 return Rules{
151 "root": {
152 Include("comments"),
153 // Global options block
154 {`^\s*(\{)\s*$`, ByGroups(Punctuation), Push("globals")},
155 // Snippets
156 {`(\([^\s#]+\))(\s*)(\{)`, ByGroups(NameVariableAnonymous, Text, Punctuation), Push("snippet")},
157 // Site label
158 {`[^#{(\s,]+`, GenericHeading, Push("label")},
159 // Site label with placeholder
160 {`\{[\w+.\$-]+\}`, LiteralStringEscape, Push("label")},
161 {`\s+`, Text, nil},
162 },
163 "globals": {
164 {`\}`, Punctuation, Pop(1)},
165 {`[^\s#]+`, Keyword, Push("directive")},
166 Include("base"),
167 },
168 "snippet": {
169 {`\}`, Punctuation, Pop(1)},
170 // Matcher definition
171 {`@[^\s]+(?=\s)`, NameDecorator, Push("matcher")},
172 // Any directive
173 {`[^\s#]+`, Keyword, Push("directive")},
174 Include("base"),
175 },
176 "label": {
177 // Allow multiple labels, comma separated, newlines after
178 // a comma means another label is coming
179 {`,\s*\n?`, Text, nil},
180 {` `, Text, nil},
181 // Site label with placeholder
182 {`\{[\w+.\$-]+\}`, LiteralStringEscape, nil},
183 // Site label
184 {`[^#{(\s,]+`, GenericHeading, nil},
185 // Comment after non-block label (hack because comments end in \n)
186 {`#.*\n`, CommentSingle, Push("site_block")},
187 // Note: if \n, we'll never pop out of the site_block, it's valid
188 {`\{(?=\s)|\n`, Punctuation, Push("site_block")},
189 },
190 "site_block": {
191 {`\}`, Punctuation, Pop(2)},
192 Include("site_block_common"),
193 },
194 }.Merge(caddyfileCommonRules())
195}
196
197// Caddyfile directive-only lexer.
198var CaddyfileDirectives = Register(MustNewLexer(
199 &Config{
200 Name: "Caddyfile Directives",
201 Aliases: []string{"caddyfile-directives", "caddyfile-d", "caddy-d"},
202 Filenames: []string{},
203 MimeTypes: []string{},
204 },
205 caddyfileDirectivesRules,
206))
207
208func caddyfileDirectivesRules() Rules {
209 return Rules{
210 // Same as "site_block" in Caddyfile
211 "root": {
212 Include("site_block_common"),
213 },
214 }.Merge(caddyfileCommonRules())
215}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go b/vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go
new file mode 100644
index 0000000..7eea429
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/cheetah.go
@@ -0,0 +1,39 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Cheetah lexer.
8var Cheetah = Register(MustNewLexer(
9 &Config{
10 Name: "Cheetah",
11 Aliases: []string{"cheetah", "spitfire"},
12 Filenames: []string{"*.tmpl", "*.spt"},
13 MimeTypes: []string{"application/x-cheetah", "application/x-spitfire"},
14 },
15 cheetahRules,
16))
17
18func cheetahRules() Rules {
19 return Rules{
20 "root": {
21 {`(##[^\n]*)$`, ByGroups(Comment), nil},
22 {`#[*](.|\n)*?[*]#`, Comment, nil},
23 {`#end[^#\n]*(?:#|$)`, CommentPreproc, nil},
24 {`#slurp$`, CommentPreproc, nil},
25 {`(#[a-zA-Z]+)([^#\n]*)(#|$)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
26 {`(\$)([a-zA-Z_][\w.]*\w)`, ByGroups(CommentPreproc, Using("Python")), nil},
27 {`(\$\{!?)(.*?)(\})(?s)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
28 {`(?sx)
29 (.+?) # anything, followed by:
30 (?:
31 (?=\#[#a-zA-Z]*) | # an eval comment
32 (?=\$[a-zA-Z_{]) | # a substitution
33 \Z # end of string
34 )
35 `, Other, nil},
36 {`\s+`, Text, nil},
37 },
38 }
39}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/cl.go b/vendor/github.com/alecthomas/chroma/v2/lexers/cl.go
new file mode 100644
index 0000000..3eb0c23
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/cl.go
@@ -0,0 +1,243 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7var (
8 clBuiltinFunctions = []string{
9 "<", "<=", "=", ">", ">=", "-", "/", "/=", "*", "+", "1-", "1+",
10 "abort", "abs", "acons", "acos", "acosh", "add-method", "adjoin",
11 "adjustable-array-p", "adjust-array", "allocate-instance",
12 "alpha-char-p", "alphanumericp", "append", "apply", "apropos",
13 "apropos-list", "aref", "arithmetic-error-operands",
14 "arithmetic-error-operation", "array-dimension", "array-dimensions",
15 "array-displacement", "array-element-type", "array-has-fill-pointer-p",
16 "array-in-bounds-p", "arrayp", "array-rank", "array-row-major-index",
17 "array-total-size", "ash", "asin", "asinh", "assoc", "assoc-if",
18 "assoc-if-not", "atan", "atanh", "atom", "bit", "bit-and", "bit-andc1",
19 "bit-andc2", "bit-eqv", "bit-ior", "bit-nand", "bit-nor", "bit-not",
20 "bit-orc1", "bit-orc2", "bit-vector-p", "bit-xor", "boole",
21 "both-case-p", "boundp", "break", "broadcast-stream-streams",
22 "butlast", "byte", "byte-position", "byte-size", "caaaar", "caaadr",
23 "caaar", "caadar", "caaddr", "caadr", "caar", "cadaar", "cadadr",
24 "cadar", "caddar", "cadddr", "caddr", "cadr", "call-next-method", "car",
25 "cdaaar", "cdaadr", "cdaar", "cdadar", "cdaddr", "cdadr", "cdar",
26 "cddaar", "cddadr", "cddar", "cdddar", "cddddr", "cdddr", "cddr", "cdr",
27 "ceiling", "cell-error-name", "cerror", "change-class", "char", "char<",
28 "char<=", "char=", "char>", "char>=", "char/=", "character",
29 "characterp", "char-code", "char-downcase", "char-equal",
30 "char-greaterp", "char-int", "char-lessp", "char-name",
31 "char-not-equal", "char-not-greaterp", "char-not-lessp", "char-upcase",
32 "cis", "class-name", "class-of", "clear-input", "clear-output",
33 "close", "clrhash", "code-char", "coerce", "compile",
34 "compiled-function-p", "compile-file", "compile-file-pathname",
35 "compiler-macro-function", "complement", "complex", "complexp",
36 "compute-applicable-methods", "compute-restarts", "concatenate",
37 "concatenated-stream-streams", "conjugate", "cons", "consp",
38 "constantly", "constantp", "continue", "copy-alist", "copy-list",
39 "copy-pprint-dispatch", "copy-readtable", "copy-seq", "copy-structure",
40 "copy-symbol", "copy-tree", "cos", "cosh", "count", "count-if",
41 "count-if-not", "decode-float", "decode-universal-time", "delete",
42 "delete-duplicates", "delete-file", "delete-if", "delete-if-not",
43 "delete-package", "denominator", "deposit-field", "describe",
44 "describe-object", "digit-char", "digit-char-p", "directory",
45 "directory-namestring", "disassemble", "documentation", "dpb",
46 "dribble", "echo-stream-input-stream", "echo-stream-output-stream",
47 "ed", "eighth", "elt", "encode-universal-time", "endp",
48 "enough-namestring", "ensure-directories-exist",
49 "ensure-generic-function", "eq", "eql", "equal", "equalp", "error",
50 "eval", "evenp", "every", "exp", "export", "expt", "fboundp",
51 "fceiling", "fdefinition", "ffloor", "fifth", "file-author",
52 "file-error-pathname", "file-length", "file-namestring",
53 "file-position", "file-string-length", "file-write-date",
54 "fill", "fill-pointer", "find", "find-all-symbols", "find-class",
55 "find-if", "find-if-not", "find-method", "find-package", "find-restart",
56 "find-symbol", "finish-output", "first", "float", "float-digits",
57 "floatp", "float-precision", "float-radix", "float-sign", "floor",
58 "fmakunbound", "force-output", "format", "fourth", "fresh-line",
59 "fround", "ftruncate", "funcall", "function-keywords",
60 "function-lambda-expression", "functionp", "gcd", "gensym", "gentemp",
61 "get", "get-decoded-time", "get-dispatch-macro-character", "getf",
62 "gethash", "get-internal-real-time", "get-internal-run-time",
63 "get-macro-character", "get-output-stream-string", "get-properties",
64 "get-setf-expansion", "get-universal-time", "graphic-char-p",
65 "hash-table-count", "hash-table-p", "hash-table-rehash-size",
66 "hash-table-rehash-threshold", "hash-table-size", "hash-table-test",
67 "host-namestring", "identity", "imagpart", "import",
68 "initialize-instance", "input-stream-p", "inspect",
69 "integer-decode-float", "integer-length", "integerp",
70 "interactive-stream-p", "intern", "intersection",
71 "invalid-method-error", "invoke-debugger", "invoke-restart",
72 "invoke-restart-interactively", "isqrt", "keywordp", "last", "lcm",
73 "ldb", "ldb-test", "ldiff", "length", "lisp-implementation-type",
74 "lisp-implementation-version", "list", "list*", "list-all-packages",
75 "listen", "list-length", "listp", "load",
76 "load-logical-pathname-translations", "log", "logand", "logandc1",
77 "logandc2", "logbitp", "logcount", "logeqv", "logical-pathname",
78 "logical-pathname-translations", "logior", "lognand", "lognor",
79 "lognot", "logorc1", "logorc2", "logtest", "logxor", "long-site-name",
80 "lower-case-p", "machine-instance", "machine-type", "machine-version",
81 "macroexpand", "macroexpand-1", "macro-function", "make-array",
82 "make-broadcast-stream", "make-concatenated-stream", "make-condition",
83 "make-dispatch-macro-character", "make-echo-stream", "make-hash-table",
84 "make-instance", "make-instances-obsolete", "make-list",
85 "make-load-form", "make-load-form-saving-slots", "make-package",
86 "make-pathname", "make-random-state", "make-sequence", "make-string",
87 "make-string-input-stream", "make-string-output-stream", "make-symbol",
88 "make-synonym-stream", "make-two-way-stream", "makunbound", "map",
89 "mapc", "mapcan", "mapcar", "mapcon", "maphash", "map-into", "mapl",
90 "maplist", "mask-field", "max", "member", "member-if", "member-if-not",
91 "merge", "merge-pathnames", "method-combination-error",
92 "method-qualifiers", "min", "minusp", "mismatch", "mod",
93 "muffle-warning", "name-char", "namestring", "nbutlast", "nconc",
94 "next-method-p", "nintersection", "ninth", "no-applicable-method",
95 "no-next-method", "not", "notany", "notevery", "nreconc", "nreverse",
96 "nset-difference", "nset-exclusive-or", "nstring-capitalize",
97 "nstring-downcase", "nstring-upcase", "nsublis", "nsubst", "nsubst-if",
98 "nsubst-if-not", "nsubstitute", "nsubstitute-if", "nsubstitute-if-not",
99 "nth", "nthcdr", "null", "numberp", "numerator", "nunion", "oddp",
100 "open", "open-stream-p", "output-stream-p", "package-error-package",
101 "package-name", "package-nicknames", "packagep",
102 "package-shadowing-symbols", "package-used-by-list", "package-use-list",
103 "pairlis", "parse-integer", "parse-namestring", "pathname",
104 "pathname-device", "pathname-directory", "pathname-host",
105 "pathname-match-p", "pathname-name", "pathnamep", "pathname-type",
106 "pathname-version", "peek-char", "phase", "plusp", "position",
107 "position-if", "position-if-not", "pprint", "pprint-dispatch",
108 "pprint-fill", "pprint-indent", "pprint-linear", "pprint-newline",
109 "pprint-tab", "pprint-tabular", "prin1", "prin1-to-string", "princ",
110 "princ-to-string", "print", "print-object", "probe-file", "proclaim",
111 "provide", "random", "random-state-p", "rassoc", "rassoc-if",
112 "rassoc-if-not", "rational", "rationalize", "rationalp", "read",
113 "read-byte", "read-char", "read-char-no-hang", "read-delimited-list",
114 "read-from-string", "read-line", "read-preserving-whitespace",
115 "read-sequence", "readtable-case", "readtablep", "realp", "realpart",
116 "reduce", "reinitialize-instance", "rem", "remhash", "remove",
117 "remove-duplicates", "remove-if", "remove-if-not", "remove-method",
118 "remprop", "rename-file", "rename-package", "replace", "require",
119 "rest", "restart-name", "revappend", "reverse", "room", "round",
120 "row-major-aref", "rplaca", "rplacd", "sbit", "scale-float", "schar",
121 "search", "second", "set", "set-difference",
122 "set-dispatch-macro-character", "set-exclusive-or",
123 "set-macro-character", "set-pprint-dispatch", "set-syntax-from-char",
124 "seventh", "shadow", "shadowing-import", "shared-initialize",
125 "short-site-name", "signal", "signum", "simple-bit-vector-p",
126 "simple-condition-format-arguments", "simple-condition-format-control",
127 "simple-string-p", "simple-vector-p", "sin", "sinh", "sixth", "sleep",
128 "slot-boundp", "slot-exists-p", "slot-makunbound", "slot-missing",
129 "slot-unbound", "slot-value", "software-type", "software-version",
130 "some", "sort", "special-operator-p", "sqrt", "stable-sort",
131 "standard-char-p", "store-value", "stream-element-type",
132 "stream-error-stream", "stream-external-format", "streamp", "string",
133 "string<", "string<=", "string=", "string>", "string>=", "string/=",
134 "string-capitalize", "string-downcase", "string-equal",
135 "string-greaterp", "string-left-trim", "string-lessp",
136 "string-not-equal", "string-not-greaterp", "string-not-lessp",
137 "stringp", "string-right-trim", "string-trim", "string-upcase",
138 "sublis", "subseq", "subsetp", "subst", "subst-if", "subst-if-not",
139 "substitute", "substitute-if", "substitute-if-not", "subtypep", "svref",
140 "sxhash", "symbol-function", "symbol-name", "symbolp", "symbol-package",
141 "symbol-plist", "symbol-value", "synonym-stream-symbol", "syntax:",
142 "tailp", "tan", "tanh", "tenth", "terpri", "third",
143 "translate-logical-pathname", "translate-pathname", "tree-equal",
144 "truename", "truncate", "two-way-stream-input-stream",
145 "two-way-stream-output-stream", "type-error-datum",
146 "type-error-expected-type", "type-of", "typep", "unbound-slot-instance",
147 "unexport", "unintern", "union", "unread-char", "unuse-package",
148 "update-instance-for-different-class",
149 "update-instance-for-redefined-class", "upgraded-array-element-type",
150 "upgraded-complex-part-type", "upper-case-p", "use-package",
151 "user-homedir-pathname", "use-value", "values", "values-list", "vector",
152 "vectorp", "vector-pop", "vector-push", "vector-push-extend", "warn",
153 "wild-pathname-p", "write", "write-byte", "write-char", "write-line",
154 "write-sequence", "write-string", "write-to-string", "yes-or-no-p",
155 "y-or-n-p", "zerop",
156 }
157
158 clSpecialForms = []string{
159 "block", "catch", "declare", "eval-when", "flet", "function", "go", "if",
160 "labels", "lambda", "let", "let*", "load-time-value", "locally", "macrolet",
161 "multiple-value-call", "multiple-value-prog1", "progn", "progv", "quote",
162 "return-from", "setq", "symbol-macrolet", "tagbody", "the", "throw",
163 "unwind-protect",
164 }
165
166 clMacros = []string{
167 "and", "assert", "call-method", "case", "ccase", "check-type", "cond",
168 "ctypecase", "decf", "declaim", "defclass", "defconstant", "defgeneric",
169 "define-compiler-macro", "define-condition", "define-method-combination",
170 "define-modify-macro", "define-setf-expander", "define-symbol-macro",
171 "defmacro", "defmethod", "defpackage", "defparameter", "defsetf",
172 "defstruct", "deftype", "defun", "defvar", "destructuring-bind", "do",
173 "do*", "do-all-symbols", "do-external-symbols", "dolist", "do-symbols",
174 "dotimes", "ecase", "etypecase", "formatter", "handler-bind",
175 "handler-case", "ignore-errors", "incf", "in-package", "lambda", "loop",
176 "loop-finish", "make-method", "multiple-value-bind", "multiple-value-list",
177 "multiple-value-setq", "nth-value", "or", "pop",
178 "pprint-exit-if-list-exhausted", "pprint-logical-block", "pprint-pop",
179 "print-unreadable-object", "prog", "prog*", "prog1", "prog2", "psetf",
180 "psetq", "push", "pushnew", "remf", "restart-bind", "restart-case",
181 "return", "rotatef", "setf", "shiftf", "step", "time", "trace", "typecase",
182 "unless", "untrace", "when", "with-accessors", "with-compilation-unit",
183 "with-condition-restarts", "with-hash-table-iterator",
184 "with-input-from-string", "with-open-file", "with-open-stream",
185 "with-output-to-string", "with-package-iterator", "with-simple-restart",
186 "with-slots", "with-standard-io-syntax",
187 }
188
189 clLambdaListKeywords = []string{
190 "&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional",
191 "&rest", "&whole",
192 }
193
194 clDeclarations = []string{
195 "dynamic-extent", "ignore", "optimize", "ftype", "inline", "special",
196 "ignorable", "notinline", "type",
197 }
198
199 clBuiltinTypes = []string{
200 "atom", "boolean", "base-char", "base-string", "bignum", "bit",
201 "compiled-function", "extended-char", "fixnum", "keyword", "nil",
202 "signed-byte", "short-float", "single-float", "double-float", "long-float",
203 "simple-array", "simple-base-string", "simple-bit-vector", "simple-string",
204 "simple-vector", "standard-char", "unsigned-byte",
205
206 // Condition Types
207 "arithmetic-error", "cell-error", "condition", "control-error",
208 "division-by-zero", "end-of-file", "error", "file-error",
209 "floating-point-inexact", "floating-point-overflow",
210 "floating-point-underflow", "floating-point-invalid-operation",
211 "parse-error", "package-error", "print-not-readable", "program-error",
212 "reader-error", "serious-condition", "simple-condition", "simple-error",
213 "simple-type-error", "simple-warning", "stream-error", "storage-condition",
214 "style-warning", "type-error", "unbound-variable", "unbound-slot",
215 "undefined-function", "warning",
216 }
217
218 clBuiltinClasses = []string{
219 "array", "broadcast-stream", "bit-vector", "built-in-class", "character",
220 "class", "complex", "concatenated-stream", "cons", "echo-stream",
221 "file-stream", "float", "function", "generic-function", "hash-table",
222 "integer", "list", "logical-pathname", "method-combination", "method",
223 "null", "number", "package", "pathname", "ratio", "rational", "readtable",
224 "real", "random-state", "restart", "sequence", "standard-class",
225 "standard-generic-function", "standard-method", "standard-object",
226 "string-stream", "stream", "string", "structure-class", "structure-object",
227 "symbol", "synonym-stream", "t", "two-way-stream", "vector",
228 }
229)
230
231// Common Lisp lexer.
232var CommonLisp = Register(TypeRemappingLexer(MustNewXMLLexer(
233 embedded,
234 "embedded/common_lisp.xml",
235), TypeMapping{
236 {NameVariable, NameFunction, clBuiltinFunctions},
237 {NameVariable, Keyword, clSpecialForms},
238 {NameVariable, NameBuiltin, clMacros},
239 {NameVariable, Keyword, clLambdaListKeywords},
240 {NameVariable, Keyword, clDeclarations},
241 {NameVariable, KeywordType, clBuiltinTypes},
242 {NameVariable, NameClass, clBuiltinClasses},
243}))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/cql.go b/vendor/github.com/alecthomas/chroma/v2/lexers/cql.go
new file mode 100644
index 0000000..32f7a28
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/cql.go
@@ -0,0 +1,70 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// CassandraCQL lexer.
8var CassandraCQL = Register(MustNewLexer(
9 &Config{
10 Name: "Cassandra CQL",
11 Aliases: []string{"cassandra", "cql"},
12 Filenames: []string{"*.cql"},
13 MimeTypes: []string{"text/x-cql"},
14 NotMultiline: true,
15 CaseInsensitive: true,
16 },
17 cassandraCQLRules,
18))
19
20func cassandraCQLRules() Rules {
21 return Rules{
22 "root": {
23 {`\s+`, TextWhitespace, nil},
24 {`(--|\/\/).*\n?`, CommentSingle, nil},
25 {`/\*`, CommentMultiline, Push("multiline-comments")},
26 {`(ascii|bigint|blob|boolean|counter|date|decimal|double|float|frozen|inet|int|list|map|set|smallint|text|time|timestamp|timeuuid|tinyint|tuple|uuid|varchar|varint)\b`, NameBuiltin, nil},
27 {Words(``, `\b`, `ADD`, `AGGREGATE`, `ALL`, `ALLOW`, `ALTER`, `AND`, `ANY`, `APPLY`, `AS`, `ASC`, `AUTHORIZE`, `BATCH`, `BEGIN`, `BY`, `CLUSTERING`, `COLUMNFAMILY`, `COMPACT`, `CONSISTENCY`, `COUNT`, `CREATE`, `CUSTOM`, `DELETE`, `DESC`, `DISTINCT`, `DROP`, `EACH_QUORUM`, `ENTRIES`, `EXISTS`, `FILTERING`, `FROM`, `FULL`, `GRANT`, `IF`, `IN`, `INDEX`, `INFINITY`, `INSERT`, `INTO`, `KEY`, `KEYS`, `KEYSPACE`, `KEYSPACES`, `LEVEL`, `LIMIT`, `LOCAL_ONE`, `LOCAL_QUORUM`, `MATERIALIZED`, `MODIFY`, `NAN`, `NORECURSIVE`, `NOSUPERUSER`, `NOT`, `OF`, `ON`, `ONE`, `ORDER`, `PARTITION`, `PASSWORD`, `PER`, `PERMISSION`, `PERMISSIONS`, `PRIMARY`, `QUORUM`, `RENAME`, `REVOKE`, `SCHEMA`, `SELECT`, `STATIC`, `STORAGE`, `SUPERUSER`, `TABLE`, `THREE`, `TO`, `TOKEN`, `TRUNCATE`, `TTL`, `TWO`, `TYPE`, `UNLOGGED`, `UPDATE`, `USE`, `USER`, `USERS`, `USING`, `VALUES`, `VIEW`, `WHERE`, `WITH`, `WRITETIME`, `REPLICATION`, `OR`, `REPLACE`, `FUNCTION`, `CALLED`, `INPUT`, `RETURNS`, `LANGUAGE`, `ROLE`, `ROLES`, `TRIGGER`, `DURABLE_WRITES`, `LOGIN`, `OPTIONS`, `LOGGED`, `SFUNC`, `STYPE`, `FINALFUNC`, `INITCOND`, `IS`, `CONTAINS`, `JSON`, `PAGING`, `OFF`), Keyword, nil},
28 {"[+*/<>=~!@#%^&|`?-]+", Operator, nil},
29 {
30 `(?s)(java|javascript)(\s+)(AS)(\s+)('|\$\$)(.*?)(\5)`,
31 UsingByGroup(1, 6,
32 NameBuiltin, TextWhitespace, Keyword, TextWhitespace,
33 LiteralStringHeredoc, LiteralStringHeredoc, LiteralStringHeredoc),
34 nil,
35 },
36 {`(true|false|null)\b`, KeywordConstant, nil},
37 {`0x[0-9a-f]+`, LiteralNumberHex, nil},
38 {`[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}`, LiteralNumberHex, nil},
39 {`\.[0-9]+(e[+-]?[0-9]+)?`, Error, nil},
40 {`-?[0-9]+(\.[0-9])?(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil},
41 {`[0-9]+`, LiteralNumberInteger, nil},
42 {`'`, LiteralStringSingle, Push("string")},
43 {`"`, LiteralStringName, Push("quoted-ident")},
44 {`\$\$`, LiteralStringHeredoc, Push("dollar-string")},
45 {`[a-z_]\w*`, Name, nil},
46 {`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil},
47 {`[;:()\[\]\{\},.]`, Punctuation, nil},
48 },
49 "multiline-comments": {
50 {`/\*`, CommentMultiline, Push("multiline-comments")},
51 {`\*/`, CommentMultiline, Pop(1)},
52 {`[^/*]+`, CommentMultiline, nil},
53 {`[/*]`, CommentMultiline, nil},
54 },
55 "string": {
56 {`[^']+`, LiteralStringSingle, nil},
57 {`''`, LiteralStringSingle, nil},
58 {`'`, LiteralStringSingle, Pop(1)},
59 },
60 "quoted-ident": {
61 {`[^"]+`, LiteralStringName, nil},
62 {`""`, LiteralStringName, nil},
63 {`"`, LiteralStringName, Pop(1)},
64 },
65 "dollar-string": {
66 {`[^\$]+`, LiteralStringHeredoc, nil},
67 {`\$\$`, LiteralStringHeredoc, Pop(1)},
68 },
69 }
70}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/docker.go b/vendor/github.com/alecthomas/chroma/v2/lexers/docker.go
new file mode 100644
index 0000000..e14654a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/docker.go
@@ -0,0 +1,32 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Docker lexer.
8var Docker = Register(MustNewLexer(
9 &Config{
10 Name: "Docker",
11 Aliases: []string{"docker", "dockerfile"},
12 Filenames: []string{"Dockerfile", "*.docker"},
13 MimeTypes: []string{"text/x-dockerfile-config"},
14 CaseInsensitive: true,
15 },
16 dockerRules,
17))
18
19func dockerRules() Rules {
20 return Rules{
21 "root": {
22 {`#.*`, Comment, nil},
23 {`(ONBUILD)((?:\s*\\?\s*))`, ByGroups(Keyword, Using("Bash")), nil},
24 {`(HEALTHCHECK)(((?:\s*\\?\s*)--\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using("Bash")), nil},
25 {`(VOLUME|ENTRYPOINT|CMD|SHELL)((?:\s*\\?\s*))(\[.*?\])`, ByGroups(Keyword, Using("Bash"), Using("JSON")), nil},
26 {`(LABEL|ENV|ARG)((?:(?:\s*\\?\s*)\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using("Bash")), nil},
27 {`((?:FROM|MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)|VOLUME)\b(.*)`, ByGroups(Keyword, LiteralString), nil},
28 {`((?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY))`, Keyword, nil},
29 {`(.*\\\n)*.+`, Using("Bash"), nil},
30 },
31 }
32}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go b/vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go
new file mode 100644
index 0000000..869b0f3
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/emacs.go
@@ -0,0 +1,533 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7var (
8 emacsMacros = []string{
9 "atomic-change-group", "case", "block", "cl-block", "cl-callf", "cl-callf2",
10 "cl-case", "cl-decf", "cl-declaim", "cl-declare",
11 "cl-define-compiler-macro", "cl-defmacro", "cl-defstruct",
12 "cl-defsubst", "cl-deftype", "cl-defun", "cl-destructuring-bind",
13 "cl-do", "cl-do*", "cl-do-all-symbols", "cl-do-symbols", "cl-dolist",
14 "cl-dotimes", "cl-ecase", "cl-etypecase", "eval-when", "cl-eval-when", "cl-flet",
15 "cl-flet*", "cl-function", "cl-incf", "cl-labels", "cl-letf",
16 "cl-letf*", "cl-load-time-value", "cl-locally", "cl-loop",
17 "cl-macrolet", "cl-multiple-value-bind", "cl-multiple-value-setq",
18 "cl-progv", "cl-psetf", "cl-psetq", "cl-pushnew", "cl-remf",
19 "cl-return", "cl-return-from", "cl-rotatef", "cl-shiftf",
20 "cl-symbol-macrolet", "cl-tagbody", "cl-the", "cl-typecase",
21 "combine-after-change-calls", "condition-case-unless-debug", "decf",
22 "declaim", "declare", "declare-function", "def-edebug-spec",
23 "defadvice", "defclass", "defcustom", "defface", "defgeneric",
24 "defgroup", "define-advice", "define-alternatives",
25 "define-compiler-macro", "define-derived-mode", "define-generic-mode",
26 "define-global-minor-mode", "define-globalized-minor-mode",
27 "define-minor-mode", "define-modify-macro",
28 "define-obsolete-face-alias", "define-obsolete-function-alias",
29 "define-obsolete-variable-alias", "define-setf-expander",
30 "define-skeleton", "defmacro", "defmethod", "defsetf", "defstruct",
31 "defsubst", "deftheme", "deftype", "defun", "defvar-local",
32 "delay-mode-hooks", "destructuring-bind", "do", "do*",
33 "do-all-symbols", "do-symbols", "dolist", "dont-compile", "dotimes",
34 "dotimes-with-progress-reporter", "ecase", "ert-deftest", "etypecase",
35 "eval-and-compile", "eval-when-compile", "flet", "ignore-errors",
36 "incf", "labels", "lambda", "letrec", "lexical-let", "lexical-let*",
37 "loop", "multiple-value-bind", "multiple-value-setq", "noreturn",
38 "oref", "oref-default", "oset", "oset-default", "pcase",
39 "pcase-defmacro", "pcase-dolist", "pcase-exhaustive", "pcase-let",
40 "pcase-let*", "pop", "psetf", "psetq", "push", "pushnew", "remf",
41 "return", "rotatef", "rx", "save-match-data", "save-selected-window",
42 "save-window-excursion", "setf", "setq-local", "shiftf",
43 "track-mouse", "typecase", "unless", "use-package", "when",
44 "while-no-input", "with-case-table", "with-category-table",
45 "with-coding-priority", "with-current-buffer", "with-demoted-errors",
46 "with-eval-after-load", "with-file-modes", "with-local-quit",
47 "with-output-to-string", "with-output-to-temp-buffer",
48 "with-parsed-tramp-file-name", "with-selected-frame",
49 "with-selected-window", "with-silent-modifications", "with-slots",
50 "with-syntax-table", "with-temp-buffer", "with-temp-file",
51 "with-temp-message", "with-timeout", "with-tramp-connection-property",
52 "with-tramp-file-property", "with-tramp-progress-reporter",
53 "with-wrapper-hook", "load-time-value", "locally", "macrolet", "progv",
54 "return-from",
55 }
56
57 emacsSpecialForms = []string{
58 "and", "catch", "cond", "condition-case", "defconst", "defvar",
59 "function", "if", "interactive", "let", "let*", "or", "prog1",
60 "prog2", "progn", "quote", "save-current-buffer", "save-excursion",
61 "save-restriction", "setq", "setq-default", "subr-arity",
62 "unwind-protect", "while",
63 }
64
65 emacsBuiltinFunction = []string{
66 "%", "*", "+", "-", "/", "/=", "1+", "1-", "<", "<=", "=", ">", ">=",
67 "Snarf-documentation", "abort-recursive-edit", "abs",
68 "accept-process-output", "access-file", "accessible-keymaps", "acos",
69 "active-minibuffer-window", "add-face-text-property",
70 "add-name-to-file", "add-text-properties", "all-completions",
71 "append", "apply", "apropos-internal", "aref", "arrayp", "aset",
72 "ash", "asin", "assoc", "assoc-string", "assq", "atan", "atom",
73 "autoload", "autoload-do-load", "backtrace", "backtrace--locals",
74 "backtrace-debug", "backtrace-eval", "backtrace-frame",
75 "backward-char", "backward-prefix-chars", "barf-if-buffer-read-only",
76 "base64-decode-region", "base64-decode-string",
77 "base64-encode-region", "base64-encode-string", "beginning-of-line",
78 "bidi-find-overridden-directionality", "bidi-resolved-levels",
79 "bitmap-spec-p", "bobp", "bolp", "bool-vector",
80 "bool-vector-count-consecutive", "bool-vector-count-population",
81 "bool-vector-exclusive-or", "bool-vector-intersection",
82 "bool-vector-not", "bool-vector-p", "bool-vector-set-difference",
83 "bool-vector-subsetp", "bool-vector-union", "boundp",
84 "buffer-base-buffer", "buffer-chars-modified-tick",
85 "buffer-enable-undo", "buffer-file-name", "buffer-has-markers-at",
86 "buffer-list", "buffer-live-p", "buffer-local-value",
87 "buffer-local-variables", "buffer-modified-p", "buffer-modified-tick",
88 "buffer-name", "buffer-size", "buffer-string", "buffer-substring",
89 "buffer-substring-no-properties", "buffer-swap-text", "bufferp",
90 "bury-buffer-internal", "byte-code", "byte-code-function-p",
91 "byte-to-position", "byte-to-string", "byteorder",
92 "call-interactively", "call-last-kbd-macro", "call-process",
93 "call-process-region", "cancel-kbd-macro-events", "capitalize",
94 "capitalize-region", "capitalize-word", "car", "car-less-than-car",
95 "car-safe", "case-table-p", "category-docstring",
96 "category-set-mnemonics", "category-table", "category-table-p",
97 "ccl-execute", "ccl-execute-on-string", "ccl-program-p", "cdr",
98 "cdr-safe", "ceiling", "char-after", "char-before",
99 "char-category-set", "char-charset", "char-equal", "char-or-string-p",
100 "char-resolve-modifiers", "char-syntax", "char-table-extra-slot",
101 "char-table-p", "char-table-parent", "char-table-range",
102 "char-table-subtype", "char-to-string", "char-width", "characterp",
103 "charset-after", "charset-id-internal", "charset-plist",
104 "charset-priority-list", "charsetp", "check-coding-system",
105 "check-coding-systems-region", "clear-buffer-auto-save-failure",
106 "clear-charset-maps", "clear-face-cache", "clear-font-cache",
107 "clear-image-cache", "clear-string", "clear-this-command-keys",
108 "close-font", "clrhash", "coding-system-aliases",
109 "coding-system-base", "coding-system-eol-type", "coding-system-p",
110 "coding-system-plist", "coding-system-priority-list",
111 "coding-system-put", "color-distance", "color-gray-p",
112 "color-supported-p", "combine-after-change-execute",
113 "command-error-default-function", "command-remapping", "commandp",
114 "compare-buffer-substrings", "compare-strings",
115 "compare-window-configurations", "completing-read",
116 "compose-region-internal", "compose-string-internal",
117 "composition-get-gstring", "compute-motion", "concat", "cons",
118 "consp", "constrain-to-field", "continue-process",
119 "controlling-tty-p", "coordinates-in-window-p", "copy-alist",
120 "copy-category-table", "copy-file", "copy-hash-table", "copy-keymap",
121 "copy-marker", "copy-sequence", "copy-syntax-table", "copysign",
122 "cos", "current-active-maps", "current-bidi-paragraph-direction",
123 "current-buffer", "current-case-table", "current-column",
124 "current-global-map", "current-idle-time", "current-indentation",
125 "current-input-mode", "current-local-map", "current-message",
126 "current-minor-mode-maps", "current-time", "current-time-string",
127 "current-time-zone", "current-window-configuration",
128 "cygwin-convert-file-name-from-windows",
129 "cygwin-convert-file-name-to-windows", "daemon-initialized",
130 "daemonp", "dbus--init-bus", "dbus-get-unique-name",
131 "dbus-message-internal", "debug-timer-check", "declare-equiv-charset",
132 "decode-big5-char", "decode-char", "decode-coding-region",
133 "decode-coding-string", "decode-sjis-char", "decode-time",
134 "default-boundp", "default-file-modes", "default-printer-name",
135 "default-toplevel-value", "default-value", "define-category",
136 "define-charset-alias", "define-charset-internal",
137 "define-coding-system-alias", "define-coding-system-internal",
138 "define-fringe-bitmap", "define-hash-table-test", "define-key",
139 "define-prefix-command", "delete",
140 "delete-all-overlays", "delete-and-extract-region", "delete-char",
141 "delete-directory-internal", "delete-field", "delete-file",
142 "delete-frame", "delete-other-windows-internal", "delete-overlay",
143 "delete-process", "delete-region", "delete-terminal",
144 "delete-window-internal", "delq", "describe-buffer-bindings",
145 "describe-vector", "destroy-fringe-bitmap", "detect-coding-region",
146 "detect-coding-string", "ding", "directory-file-name",
147 "directory-files", "directory-files-and-attributes", "discard-input",
148 "display-supports-face-attributes-p", "do-auto-save", "documentation",
149 "documentation-property", "downcase", "downcase-region",
150 "downcase-word", "draw-string", "dump-colors", "dump-emacs",
151 "dump-face", "dump-frame-glyph-matrix", "dump-glyph-matrix",
152 "dump-glyph-row", "dump-redisplay-history", "dump-tool-bar-row",
153 "elt", "emacs-pid", "encode-big5-char", "encode-char",
154 "encode-coding-region", "encode-coding-string", "encode-sjis-char",
155 "encode-time", "end-kbd-macro", "end-of-line", "eobp", "eolp", "eq",
156 "eql", "equal", "equal-including-properties", "erase-buffer",
157 "error-message-string", "eval", "eval-buffer", "eval-region",
158 "event-convert-list", "execute-kbd-macro", "exit-recursive-edit",
159 "exp", "expand-file-name", "expt", "external-debugging-output",
160 "face-attribute-relative-p", "face-attributes-as-vector", "face-font",
161 "fboundp", "fceiling", "fetch-bytecode", "ffloor",
162 "field-beginning", "field-end", "field-string",
163 "field-string-no-properties", "file-accessible-directory-p",
164 "file-acl", "file-attributes", "file-attributes-lessp",
165 "file-directory-p", "file-executable-p", "file-exists-p",
166 "file-locked-p", "file-modes", "file-name-absolute-p",
167 "file-name-all-completions", "file-name-as-directory",
168 "file-name-completion", "file-name-directory",
169 "file-name-nondirectory", "file-newer-than-file-p", "file-readable-p",
170 "file-regular-p", "file-selinux-context", "file-symlink-p",
171 "file-system-info", "file-system-info", "file-writable-p",
172 "fillarray", "find-charset-region", "find-charset-string",
173 "find-coding-systems-region-internal", "find-composition-internal",
174 "find-file-name-handler", "find-font", "find-operation-coding-system",
175 "float", "float-time", "floatp", "floor", "fmakunbound",
176 "following-char", "font-at", "font-drive-otf", "font-face-attributes",
177 "font-family-list", "font-get", "font-get-glyphs",
178 "font-get-system-font", "font-get-system-normal-font", "font-info",
179 "font-match-p", "font-otf-alternates", "font-put",
180 "font-shape-gstring", "font-spec", "font-variation-glyphs",
181 "font-xlfd-name", "fontp", "fontset-font", "fontset-info",
182 "fontset-list", "fontset-list-all", "force-mode-line-update",
183 "force-window-update", "format", "format-mode-line",
184 "format-network-address", "format-time-string", "forward-char",
185 "forward-comment", "forward-line", "forward-word",
186 "frame-border-width", "frame-bottom-divider-width",
187 "frame-can-run-window-configuration-change-hook", "frame-char-height",
188 "frame-char-width", "frame-face-alist", "frame-first-window",
189 "frame-focus", "frame-font-cache", "frame-fringe-width", "frame-list",
190 "frame-live-p", "frame-or-buffer-changed-p", "frame-parameter",
191 "frame-parameters", "frame-pixel-height", "frame-pixel-width",
192 "frame-pointer-visible-p", "frame-right-divider-width",
193 "frame-root-window", "frame-scroll-bar-height",
194 "frame-scroll-bar-width", "frame-selected-window", "frame-terminal",
195 "frame-text-cols", "frame-text-height", "frame-text-lines",
196 "frame-text-width", "frame-total-cols", "frame-total-lines",
197 "frame-visible-p", "framep", "frexp", "fringe-bitmaps-at-pos",
198 "fround", "fset", "ftruncate", "funcall", "funcall-interactively",
199 "function-equal", "functionp", "gap-position", "gap-size",
200 "garbage-collect", "gc-status", "generate-new-buffer-name", "get",
201 "get-buffer", "get-buffer-create", "get-buffer-process",
202 "get-buffer-window", "get-byte", "get-char-property",
203 "get-char-property-and-overlay", "get-file-buffer", "get-file-char",
204 "get-internal-run-time", "get-load-suffixes", "get-pos-property",
205 "get-process", "get-screen-color", "get-text-property",
206 "get-unicode-property-internal", "get-unused-category",
207 "get-unused-iso-final-char", "getenv-internal", "gethash",
208 "gfile-add-watch", "gfile-rm-watch", "global-key-binding",
209 "gnutls-available-p", "gnutls-boot", "gnutls-bye", "gnutls-deinit",
210 "gnutls-error-fatalp", "gnutls-error-string", "gnutls-errorp",
211 "gnutls-get-initstage", "gnutls-peer-status",
212 "gnutls-peer-status-warning-describe", "goto-char", "gpm-mouse-start",
213 "gpm-mouse-stop", "group-gid", "group-real-gid",
214 "handle-save-session", "handle-switch-frame", "hash-table-count",
215 "hash-table-p", "hash-table-rehash-size",
216 "hash-table-rehash-threshold", "hash-table-size", "hash-table-test",
217 "hash-table-weakness", "iconify-frame", "identity", "image-flush",
218 "image-mask-p", "image-metadata", "image-size", "imagemagick-types",
219 "imagep", "indent-to", "indirect-function", "indirect-variable",
220 "init-image-library", "inotify-add-watch", "inotify-rm-watch",
221 "input-pending-p", "insert", "insert-and-inherit",
222 "insert-before-markers", "insert-before-markers-and-inherit",
223 "insert-buffer-substring", "insert-byte", "insert-char",
224 "insert-file-contents", "insert-startup-screen", "int86",
225 "integer-or-marker-p", "integerp", "interactive-form", "intern",
226 "intern-soft", "internal--track-mouse", "internal-char-font",
227 "internal-complete-buffer", "internal-copy-lisp-face",
228 "internal-default-process-filter",
229 "internal-default-process-sentinel", "internal-describe-syntax-value",
230 "internal-event-symbol-parse-modifiers",
231 "internal-face-x-get-resource", "internal-get-lisp-face-attribute",
232 "internal-lisp-face-attribute-values", "internal-lisp-face-empty-p",
233 "internal-lisp-face-equal-p", "internal-lisp-face-p",
234 "internal-make-lisp-face", "internal-make-var-non-special",
235 "internal-merge-in-global-face",
236 "internal-set-alternative-font-family-alist",
237 "internal-set-alternative-font-registry-alist",
238 "internal-set-font-selection-order",
239 "internal-set-lisp-face-attribute",
240 "internal-set-lisp-face-attribute-from-resource",
241 "internal-show-cursor", "internal-show-cursor-p", "interrupt-process",
242 "invisible-p", "invocation-directory", "invocation-name", "isnan",
243 "iso-charset", "key-binding", "key-description",
244 "keyboard-coding-system", "keymap-parent", "keymap-prompt", "keymapp",
245 "keywordp", "kill-all-local-variables", "kill-buffer", "kill-emacs",
246 "kill-local-variable", "kill-process", "last-nonminibuffer-frame",
247 "lax-plist-get", "lax-plist-put", "ldexp", "length",
248 "libxml-parse-html-region", "libxml-parse-xml-region",
249 "line-beginning-position", "line-end-position", "line-pixel-height",
250 "list", "list-fonts", "list-system-processes", "listp", "load",
251 "load-average", "local-key-binding", "local-variable-if-set-p",
252 "local-variable-p", "locale-info", "locate-file-internal",
253 "lock-buffer", "log", "logand", "logb", "logior", "lognot", "logxor",
254 "looking-at", "lookup-image", "lookup-image-map", "lookup-key",
255 "lower-frame", "lsh", "macroexpand", "make-bool-vector",
256 "make-byte-code", "make-category-set", "make-category-table",
257 "make-char", "make-char-table", "make-directory-internal",
258 "make-frame-invisible", "make-frame-visible", "make-hash-table",
259 "make-indirect-buffer", "make-keymap", "make-list",
260 "make-local-variable", "make-marker", "make-network-process",
261 "make-overlay", "make-serial-process", "make-sparse-keymap",
262 "make-string", "make-symbol", "make-symbolic-link", "make-temp-name",
263 "make-terminal-frame", "make-variable-buffer-local",
264 "make-variable-frame-local", "make-vector", "makunbound",
265 "map-char-table", "map-charset-chars", "map-keymap",
266 "map-keymap-internal", "mapatoms", "mapc", "mapcar", "mapconcat",
267 "maphash", "mark-marker", "marker-buffer", "marker-insertion-type",
268 "marker-position", "markerp", "match-beginning", "match-data",
269 "match-end", "matching-paren", "max", "max-char", "md5", "member",
270 "memory-info", "memory-limit", "memory-use-counts", "memq", "memql",
271 "menu-bar-menu-at-x-y", "menu-or-popup-active-p",
272 "menu-or-popup-active-p", "merge-face-attribute", "message",
273 "message-box", "message-or-box", "min",
274 "minibuffer-completion-contents", "minibuffer-contents",
275 "minibuffer-contents-no-properties", "minibuffer-depth",
276 "minibuffer-prompt", "minibuffer-prompt-end",
277 "minibuffer-selected-window", "minibuffer-window", "minibufferp",
278 "minor-mode-key-binding", "mod", "modify-category-entry",
279 "modify-frame-parameters", "modify-syntax-entry",
280 "mouse-pixel-position", "mouse-position", "move-overlay",
281 "move-point-visually", "move-to-column", "move-to-window-line",
282 "msdos-downcase-filename", "msdos-long-file-names", "msdos-memget",
283 "msdos-memput", "msdos-mouse-disable", "msdos-mouse-enable",
284 "msdos-mouse-init", "msdos-mouse-p", "msdos-remember-default-colors",
285 "msdos-set-keyboard", "msdos-set-mouse-buttons",
286 "multibyte-char-to-unibyte", "multibyte-string-p", "narrow-to-region",
287 "natnump", "nconc", "network-interface-info",
288 "network-interface-list", "new-fontset", "newline-cache-check",
289 "next-char-property-change", "next-frame", "next-overlay-change",
290 "next-property-change", "next-read-file-uses-dialog-p",
291 "next-single-char-property-change", "next-single-property-change",
292 "next-window", "nlistp", "nreverse", "nth", "nthcdr", "null",
293 "number-or-marker-p", "number-to-string", "numberp",
294 "open-dribble-file", "open-font", "open-termscript",
295 "optimize-char-table", "other-buffer", "other-window-for-scrolling",
296 "overlay-buffer", "overlay-end", "overlay-get", "overlay-lists",
297 "overlay-properties", "overlay-put", "overlay-recenter",
298 "overlay-start", "overlayp", "overlays-at", "overlays-in",
299 "parse-partial-sexp", "play-sound-internal", "plist-get",
300 "plist-member", "plist-put", "point", "point-marker", "point-max",
301 "point-max-marker", "point-min", "point-min-marker",
302 "pos-visible-in-window-p", "position-bytes", "posix-looking-at",
303 "posix-search-backward", "posix-search-forward", "posix-string-match",
304 "posn-at-point", "posn-at-x-y", "preceding-char",
305 "prefix-numeric-value", "previous-char-property-change",
306 "previous-frame", "previous-overlay-change",
307 "previous-property-change", "previous-single-char-property-change",
308 "previous-single-property-change", "previous-window", "prin1",
309 "prin1-to-string", "princ", "print", "process-attributes",
310 "process-buffer", "process-coding-system", "process-command",
311 "process-connection", "process-contact", "process-datagram-address",
312 "process-exit-status", "process-filter", "process-filter-multibyte-p",
313 "process-id", "process-inherit-coding-system-flag", "process-list",
314 "process-mark", "process-name", "process-plist",
315 "process-query-on-exit-flag", "process-running-child-p",
316 "process-send-eof", "process-send-region", "process-send-string",
317 "process-sentinel", "process-status", "process-tty-name",
318 "process-type", "processp", "profiler-cpu-log",
319 "profiler-cpu-running-p", "profiler-cpu-start", "profiler-cpu-stop",
320 "profiler-memory-log", "profiler-memory-running-p",
321 "profiler-memory-start", "profiler-memory-stop", "propertize",
322 "purecopy", "put", "put-text-property",
323 "put-unicode-property-internal", "puthash", "query-font",
324 "query-fontset", "quit-process", "raise-frame", "random", "rassoc",
325 "rassq", "re-search-backward", "re-search-forward", "read",
326 "read-buffer", "read-char", "read-char-exclusive",
327 "read-coding-system", "read-command", "read-event",
328 "read-from-minibuffer", "read-from-string", "read-function",
329 "read-key-sequence", "read-key-sequence-vector",
330 "read-no-blanks-input", "read-non-nil-coding-system", "read-string",
331 "read-variable", "recent-auto-save-p", "recent-doskeys",
332 "recent-keys", "recenter", "recursion-depth", "recursive-edit",
333 "redirect-debugging-output", "redirect-frame-focus", "redisplay",
334 "redraw-display", "redraw-frame", "regexp-quote", "region-beginning",
335 "region-end", "register-ccl-program", "register-code-conversion-map",
336 "remhash", "remove-list-of-text-properties", "remove-text-properties",
337 "rename-buffer", "rename-file", "replace-match",
338 "reset-this-command-lengths", "resize-mini-window-internal",
339 "restore-buffer-modified-p", "resume-tty", "reverse", "round",
340 "run-hook-with-args", "run-hook-with-args-until-failure",
341 "run-hook-with-args-until-success", "run-hook-wrapped", "run-hooks",
342 "run-window-configuration-change-hook", "run-window-scroll-functions",
343 "safe-length", "scan-lists", "scan-sexps", "scroll-down",
344 "scroll-left", "scroll-other-window", "scroll-right", "scroll-up",
345 "search-backward", "search-forward", "secure-hash", "select-frame",
346 "select-window", "selected-frame", "selected-window",
347 "self-insert-command", "send-string-to-terminal", "sequencep",
348 "serial-process-configure", "set", "set-buffer",
349 "set-buffer-auto-saved", "set-buffer-major-mode",
350 "set-buffer-modified-p", "set-buffer-multibyte", "set-case-table",
351 "set-category-table", "set-char-table-extra-slot",
352 "set-char-table-parent", "set-char-table-range", "set-charset-plist",
353 "set-charset-priority", "set-coding-system-priority",
354 "set-cursor-size", "set-default", "set-default-file-modes",
355 "set-default-toplevel-value", "set-file-acl", "set-file-modes",
356 "set-file-selinux-context", "set-file-times", "set-fontset-font",
357 "set-frame-height", "set-frame-position", "set-frame-selected-window",
358 "set-frame-size", "set-frame-width", "set-fringe-bitmap-face",
359 "set-input-interrupt-mode", "set-input-meta-mode", "set-input-mode",
360 "set-keyboard-coding-system-internal", "set-keymap-parent",
361 "set-marker", "set-marker-insertion-type", "set-match-data",
362 "set-message-beep", "set-minibuffer-window",
363 "set-mouse-pixel-position", "set-mouse-position",
364 "set-network-process-option", "set-output-flow-control",
365 "set-process-buffer", "set-process-coding-system",
366 "set-process-datagram-address", "set-process-filter",
367 "set-process-filter-multibyte",
368 "set-process-inherit-coding-system-flag", "set-process-plist",
369 "set-process-query-on-exit-flag", "set-process-sentinel",
370 "set-process-window-size", "set-quit-char",
371 "set-safe-terminal-coding-system-internal", "set-screen-color",
372 "set-standard-case-table", "set-syntax-table",
373 "set-terminal-coding-system-internal", "set-terminal-local-value",
374 "set-terminal-parameter", "set-text-properties", "set-time-zone-rule",
375 "set-visited-file-modtime", "set-window-buffer",
376 "set-window-combination-limit", "set-window-configuration",
377 "set-window-dedicated-p", "set-window-display-table",
378 "set-window-fringes", "set-window-hscroll", "set-window-margins",
379 "set-window-new-normal", "set-window-new-pixel",
380 "set-window-new-total", "set-window-next-buffers",
381 "set-window-parameter", "set-window-point", "set-window-prev-buffers",
382 "set-window-redisplay-end-trigger", "set-window-scroll-bars",
383 "set-window-start", "set-window-vscroll", "setcar", "setcdr",
384 "setplist", "show-face-resources", "signal", "signal-process", "sin",
385 "single-key-description", "skip-chars-backward", "skip-chars-forward",
386 "skip-syntax-backward", "skip-syntax-forward", "sleep-for", "sort",
387 "sort-charsets", "special-variable-p", "split-char",
388 "split-window-internal", "sqrt", "standard-case-table",
389 "standard-category-table", "standard-syntax-table", "start-kbd-macro",
390 "start-process", "stop-process", "store-kbd-macro-event", "string",
391 "string-as-multibyte", "string-as-unibyte", "string-bytes",
392 "string-collate-equalp", "string-collate-lessp", "string-equal",
393 "string-lessp", "string-make-multibyte", "string-make-unibyte",
394 "string-match", "string-to-char", "string-to-multibyte",
395 "string-to-number", "string-to-syntax", "string-to-unibyte",
396 "string-width", "stringp", "subr-name", "subrp",
397 "subst-char-in-region", "substitute-command-keys",
398 "substitute-in-file-name", "substring", "substring-no-properties",
399 "suspend-emacs", "suspend-tty", "suspicious-object", "sxhash",
400 "symbol-function", "symbol-name", "symbol-plist", "symbol-value",
401 "symbolp", "syntax-table", "syntax-table-p", "system-groups",
402 "system-move-file-to-trash", "system-name", "system-users", "tan",
403 "terminal-coding-system", "terminal-list", "terminal-live-p",
404 "terminal-local-value", "terminal-name", "terminal-parameter",
405 "terminal-parameters", "terpri", "test-completion",
406 "text-char-description", "text-properties-at", "text-property-any",
407 "text-property-not-all", "this-command-keys",
408 "this-command-keys-vector", "this-single-command-keys",
409 "this-single-command-raw-keys", "time-add", "time-less-p",
410 "time-subtract", "tool-bar-get-system-style", "tool-bar-height",
411 "tool-bar-pixel-width", "top-level", "trace-redisplay",
412 "trace-to-stderr", "translate-region-internal", "transpose-regions",
413 "truncate", "try-completion", "tty-display-color-cells",
414 "tty-display-color-p", "tty-no-underline",
415 "tty-suppress-bold-inverse-default-colors", "tty-top-frame",
416 "tty-type", "type-of", "undo-boundary", "unencodable-char-position",
417 "unhandled-file-name-directory", "unibyte-char-to-multibyte",
418 "unibyte-string", "unicode-property-table-internal", "unify-charset",
419 "unintern", "unix-sync", "unlock-buffer", "upcase", "upcase-initials",
420 "upcase-initials-region", "upcase-region", "upcase-word",
421 "use-global-map", "use-local-map", "user-full-name",
422 "user-login-name", "user-real-login-name", "user-real-uid",
423 "user-uid", "variable-binding-locus", "vconcat", "vector",
424 "vector-or-char-table-p", "vectorp", "verify-visited-file-modtime",
425 "vertical-motion", "visible-frame-list", "visited-file-modtime",
426 "w16-get-clipboard-data", "w16-selection-exists-p",
427 "w16-set-clipboard-data", "w32-battery-status",
428 "w32-default-color-map", "w32-define-rgb-color",
429 "w32-display-monitor-attributes-list", "w32-frame-menu-bar-size",
430 "w32-frame-rect", "w32-get-clipboard-data",
431 "w32-get-codepage-charset", "w32-get-console-codepage",
432 "w32-get-console-output-codepage", "w32-get-current-locale-id",
433 "w32-get-default-locale-id", "w32-get-keyboard-layout",
434 "w32-get-locale-info", "w32-get-valid-codepages",
435 "w32-get-valid-keyboard-layouts", "w32-get-valid-locale-ids",
436 "w32-has-winsock", "w32-long-file-name", "w32-reconstruct-hot-key",
437 "w32-register-hot-key", "w32-registered-hot-keys",
438 "w32-selection-exists-p", "w32-send-sys-command",
439 "w32-set-clipboard-data", "w32-set-console-codepage",
440 "w32-set-console-output-codepage", "w32-set-current-locale",
441 "w32-set-keyboard-layout", "w32-set-process-priority",
442 "w32-shell-execute", "w32-short-file-name", "w32-toggle-lock-key",
443 "w32-unload-winsock", "w32-unregister-hot-key", "w32-window-exists-p",
444 "w32notify-add-watch", "w32notify-rm-watch",
445 "waiting-for-user-input-p", "where-is-internal", "widen",
446 "widget-apply", "widget-get", "widget-put",
447 "window-absolute-pixel-edges", "window-at", "window-body-height",
448 "window-body-width", "window-bottom-divider-width", "window-buffer",
449 "window-combination-limit", "window-configuration-frame",
450 "window-configuration-p", "window-dedicated-p",
451 "window-display-table", "window-edges", "window-end", "window-frame",
452 "window-fringes", "window-header-line-height", "window-hscroll",
453 "window-inside-absolute-pixel-edges", "window-inside-edges",
454 "window-inside-pixel-edges", "window-left-child",
455 "window-left-column", "window-line-height", "window-list",
456 "window-list-1", "window-live-p", "window-margins",
457 "window-minibuffer-p", "window-mode-line-height", "window-new-normal",
458 "window-new-pixel", "window-new-total", "window-next-buffers",
459 "window-next-sibling", "window-normal-size", "window-old-point",
460 "window-parameter", "window-parameters", "window-parent",
461 "window-pixel-edges", "window-pixel-height", "window-pixel-left",
462 "window-pixel-top", "window-pixel-width", "window-point",
463 "window-prev-buffers", "window-prev-sibling",
464 "window-redisplay-end-trigger", "window-resize-apply",
465 "window-resize-apply-total", "window-right-divider-width",
466 "window-scroll-bar-height", "window-scroll-bar-width",
467 "window-scroll-bars", "window-start", "window-system",
468 "window-text-height", "window-text-pixel-size", "window-text-width",
469 "window-top-child", "window-top-line", "window-total-height",
470 "window-total-width", "window-use-time", "window-valid-p",
471 "window-vscroll", "windowp", "write-char", "write-region",
472 "x-backspace-delete-keys-p", "x-change-window-property",
473 "x-change-window-property", "x-close-connection",
474 "x-close-connection", "x-create-frame", "x-create-frame",
475 "x-delete-window-property", "x-delete-window-property",
476 "x-disown-selection-internal", "x-display-backing-store",
477 "x-display-backing-store", "x-display-color-cells",
478 "x-display-color-cells", "x-display-grayscale-p",
479 "x-display-grayscale-p", "x-display-list", "x-display-list",
480 "x-display-mm-height", "x-display-mm-height", "x-display-mm-width",
481 "x-display-mm-width", "x-display-monitor-attributes-list",
482 "x-display-pixel-height", "x-display-pixel-height",
483 "x-display-pixel-width", "x-display-pixel-width", "x-display-planes",
484 "x-display-planes", "x-display-save-under", "x-display-save-under",
485 "x-display-screens", "x-display-screens", "x-display-visual-class",
486 "x-display-visual-class", "x-family-fonts", "x-file-dialog",
487 "x-file-dialog", "x-file-dialog", "x-focus-frame", "x-frame-geometry",
488 "x-frame-geometry", "x-get-atom-name", "x-get-resource",
489 "x-get-selection-internal", "x-hide-tip", "x-hide-tip",
490 "x-list-fonts", "x-load-color-file", "x-menu-bar-open-internal",
491 "x-menu-bar-open-internal", "x-open-connection", "x-open-connection",
492 "x-own-selection-internal", "x-parse-geometry", "x-popup-dialog",
493 "x-popup-menu", "x-register-dnd-atom", "x-select-font",
494 "x-select-font", "x-selection-exists-p", "x-selection-owner-p",
495 "x-send-client-message", "x-server-max-request-size",
496 "x-server-max-request-size", "x-server-vendor", "x-server-vendor",
497 "x-server-version", "x-server-version", "x-show-tip", "x-show-tip",
498 "x-synchronize", "x-synchronize", "x-uses-old-gtk-dialog",
499 "x-window-property", "x-window-property", "x-wm-set-size-hint",
500 "xw-color-defined-p", "xw-color-defined-p", "xw-color-values",
501 "xw-color-values", "xw-display-color-p", "xw-display-color-p",
502 "yes-or-no-p", "zlib-available-p", "zlib-decompress-region",
503 "forward-point",
504 }
505
506 emacsBuiltinFunctionHighlighted = []string{
507 "defvaralias", "provide", "require",
508 "with-no-warnings", "define-widget", "with-electric-help",
509 "throw", "defalias", "featurep",
510 }
511
512 emacsLambdaListKeywords = []string{
513 "&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional",
514 "&rest", "&whole",
515 }
516
517 emacsErrorKeywords = []string{
518 "cl-assert", "cl-check-type", "error", "signal",
519 "user-error", "warn",
520 }
521)
522
523// EmacsLisp lexer.
524var EmacsLisp = Register(TypeRemappingLexer(MustNewXMLLexer(
525 embedded,
526 "embedded/emacslisp.xml",
527), TypeMapping{
528 {NameVariable, NameFunction, emacsBuiltinFunction},
529 {NameVariable, NameBuiltin, emacsSpecialForms},
530 {NameVariable, NameException, emacsErrorKeywords},
531 {NameVariable, NameBuiltin, append(emacsBuiltinFunctionHighlighted, emacsMacros...)},
532 {NameVariable, KeywordPseudo, emacsLambdaListKeywords},
533}))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml
new file mode 100644
index 0000000..e8140b7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abap.xml
@@ -0,0 +1,154 @@
1<lexer>
2 <config>
3 <name>ABAP</name>
4 <alias>abap</alias>
5 <filename>*.abap</filename>
6 <filename>*.ABAP</filename>
7 <mime_type>text/x-abap</mime_type>
8 <case_insensitive>true</case_insensitive>
9 </config>
10 <rules>
11 <state name="common">
12 <rule pattern="\s+">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="^\*.*$">
16 <token type="CommentSingle"/>
17 </rule>
18 <rule pattern="\&#34;.*?\n">
19 <token type="CommentSingle"/>
20 </rule>
21 <rule pattern="##\w+">
22 <token type="CommentSpecial"/>
23 </rule>
24 </state>
25 <state name="variable-names">
26 <rule pattern="&lt;\S+&gt;">
27 <token type="NameVariable"/>
28 </rule>
29 <rule pattern="\w[\w~]*(?:(\[\])|-&gt;\*)?">
30 <token type="NameVariable"/>
31 </rule>
32 </state>
33 <state name="root">
34 <rule>
35 <include state="common"/>
36 </rule>
37 <rule pattern="CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION)">
38 <token type="Keyword"/>
39 </rule>
40 <rule pattern="(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\b">
41 <token type="Keyword"/>
42 </rule>
43 <rule pattern="(FORM|PERFORM)(\s+)(\w+)">
44 <bygroups>
45 <token type="Keyword"/>
46 <token type="Text"/>
47 <token type="NameFunction"/>
48 </bygroups>
49 </rule>
50 <rule pattern="(PERFORM)(\s+)(\()(\w+)(\))">
51 <bygroups>
52 <token type="Keyword"/>
53 <token type="Text"/>
54 <token type="Punctuation"/>
55 <token type="NameVariable"/>
56 <token type="Punctuation"/>
57 </bygroups>
58 </rule>
59 <rule pattern="(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)">
60 <bygroups>
61 <token type="Keyword"/>
62 <token type="Text"/>
63 <token type="NameFunction"/>
64 <token type="Text"/>
65 <token type="Keyword"/>
66 </bygroups>
67 </rule>
68 <rule pattern="(METHOD)(\s+)([\w~]+)">
69 <bygroups>
70 <token type="Keyword"/>
71 <token type="Text"/>
72 <token type="NameFunction"/>
73 </bygroups>
74 </rule>
75 <rule pattern="(\s+)([\w\-]+)([=\-]&gt;)([\w\-~]+)">
76 <bygroups>
77 <token type="Text"/>
78 <token type="NameVariable"/>
79 <token type="Operator"/>
80 <token type="NameFunction"/>
81 </bygroups>
82 </rule>
83 <rule pattern="(?&lt;=(=|-)&gt;)([\w\-~]+)(?=\()">
84 <token type="NameFunction"/>
85 </rule>
86 <rule pattern="(TEXT)(-)(\d{3})">
87 <bygroups>
88 <token type="Keyword"/>
89 <token type="Punctuation"/>
90 <token type="LiteralNumberInteger"/>
91 </bygroups>
92 </rule>
93 <rule pattern="(TEXT)(-)(\w{3})">
94 <bygroups>
95 <token type="Keyword"/>
96 <token type="Punctuation"/>
97 <token type="NameVariable"/>
98 </bygroups>
99 </rule>
100 <rule pattern="(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|NO-DISPLAY)\b">
101 <token type="Keyword"/>
102 </rule>
103 <rule pattern="(?&lt;![-\&gt;])(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|APPEND)(\s+INITIAL\s+LINE\s+(IN)?TO|\s+LINES\s+OF)?|IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\s+FRAME(\s+TITLE)|(REPLACE|FIND)\s+((FIRST|ALL)\s+OCCURRENCES?\s+OF\s+)?(SUBSTRING|REGEX)?|MATCH\s+(LENGTH|COUNT|LINE|OFFSET)|(RESPECTING|IGNORING)\s+CASE|IN\s+UPDATE\s+TASK|(SOURCE|RESULT)\s+(XML)?|REFERENCE\s+INTO|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|COMMON\s+PART)\b">
104 <token type="Keyword"/>
105 </rule>
106 <rule pattern="(^|(?&lt;=(\s|\.)))(ABBREVIATED|ABSTRACT|ADD|ALIASES|ALIGN|ALPHA|ASSERT|AS|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|COUNTRY|CURRENCY|DATA|DATE|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|DUMMY|ELSE(IF)?|ENDAT|ENDCASE|ENDCATCH|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENDWHILE|ENHANCEMENT|EVENTS|EXACT|EXCEPTIONS?|EXIT|EXPONENT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FOR|FORM|FORMAT|FREE|FROM|FUNCTION|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LANGUAGE|LEAVE|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|NEXT|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFIER|MODIFY|MOVE|MULTIPLY|NODES|NUMBER|OBLIGATORY|OBJECT|OF|OFF|ON|OTHERS|OVERLAY|PACK|PAD|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|PF\d\d|RAISE|RAISING|RANGES?|READ|RECEIVE|REDEFINITION|REFRESH|REJECT|REPORT|RESERVE|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|REPLACE|SCROLL|SEARCH|SELECT|SHIFT|SIGN|SINGLE|SIZE|SKIP|SORT|SPLIT|STATICS|STOP|STYLE|SUBMATCHES|SUBMIT|SUBTRACT|SUM(?!\()|SUMMARY|SUMMING|SUPPLY|TABLE|TABLES|TIMESTAMP|TIMES?|TIMEZONE|TITLE|\??TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|VARYING|VARY|WAIT|WHEN|WHERE|WIDTH|WHILE|WITH|WINDOW|WRITE|XSD|ZERO)\b">
107 <token type="Keyword"/>
108 </rule>
109 <rule pattern="(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">
110 <bygroups>
111 <token type="NameBuiltin"/>
112 <token type="Punctuation"/>
113 </bygroups>
114 </rule>
115 <rule pattern="&amp;[0-9]">
116 <token type="Name"/>
117 </rule>
118 <rule pattern="[0-9]+">
119 <token type="LiteralNumberInteger"/>
120 </rule>
121 <rule pattern="(?&lt;=(\s|.))(AND|OR|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">
122 <token type="OperatorWord"/>
123 </rule>
124 <rule>
125 <include state="variable-names"/>
126 </rule>
127 <rule pattern="[?*&lt;&gt;=\-+&amp;]">
128 <token type="Operator"/>
129 </rule>
130 <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
131 <token type="LiteralStringSingle"/>
132 </rule>
133 <rule pattern="`([^`])*`">
134 <token type="LiteralStringSingle"/>
135 </rule>
136 <rule pattern="([|}])([^{}|]*?)([|{])">
137 <bygroups>
138 <token type="Punctuation"/>
139 <token type="LiteralStringSingle"/>
140 <token type="Punctuation"/>
141 </bygroups>
142 </rule>
143 <rule pattern="[/;:()\[\],.]">
144 <token type="Punctuation"/>
145 </rule>
146 <rule pattern="(!)(\w+)">
147 <bygroups>
148 <token type="Operator"/>
149 <token type="Name"/>
150 </bygroups>
151 </rule>
152 </state>
153 </rules>
154</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml
new file mode 100644
index 0000000..3ffd51c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/abnf.xml
@@ -0,0 +1,66 @@
1<lexer>
2 <config>
3 <name>ABNF</name>
4 <alias>abnf</alias>
5 <filename>*.abnf</filename>
6 <mime_type>text/x-abnf</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern=";.*$">
11 <token type="CommentSingle"/>
12 </rule>
13 <rule pattern="(%[si])?&#34;[^&#34;]*&#34;">
14 <token type="Literal"/>
15 </rule>
16 <rule pattern="%b[01]+\-[01]+\b">
17 <token type="Literal"/>
18 </rule>
19 <rule pattern="%b[01]+(\.[01]+)*\b">
20 <token type="Literal"/>
21 </rule>
22 <rule pattern="%d[0-9]+\-[0-9]+\b">
23 <token type="Literal"/>
24 </rule>
25 <rule pattern="%d[0-9]+(\.[0-9]+)*\b">
26 <token type="Literal"/>
27 </rule>
28 <rule pattern="%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b">
29 <token type="Literal"/>
30 </rule>
31 <rule pattern="%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b">
32 <token type="Literal"/>
33 </rule>
34 <rule pattern="\b[0-9]+\*[0-9]+">
35 <token type="Operator"/>
36 </rule>
37 <rule pattern="\b[0-9]+\*">
38 <token type="Operator"/>
39 </rule>
40 <rule pattern="\b[0-9]+">
41 <token type="Operator"/>
42 </rule>
43 <rule pattern="\*">
44 <token type="Operator"/>
45 </rule>
46 <rule pattern="(HEXDIG|DQUOTE|DIGIT|VCHAR|OCTET|ALPHA|CHAR|CRLF|HTAB|LWSP|BIT|CTL|WSP|LF|SP|CR)\b">
47 <token type="Keyword"/>
48 </rule>
49 <rule pattern="[a-zA-Z][a-zA-Z0-9-]+\b">
50 <token type="NameClass"/>
51 </rule>
52 <rule pattern="(=/|=|/)">
53 <token type="Operator"/>
54 </rule>
55 <rule pattern="[\[\]()]">
56 <token type="Punctuation"/>
57 </rule>
58 <rule pattern="\s+">
59 <token type="Text"/>
60 </rule>
61 <rule pattern=".">
62 <token type="Text"/>
63 </rule>
64 </state>
65 </rules>
66</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml
new file mode 100644
index 0000000..d6727a1
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript.xml
@@ -0,0 +1,68 @@
1<lexer>
2 <config>
3 <name>ActionScript</name>
4 <alias>as</alias>
5 <alias>actionscript</alias>
6 <filename>*.as</filename>
7 <mime_type>application/x-actionscript</mime_type>
8 <mime_type>text/x-actionscript</mime_type>
9 <mime_type>text/actionscript</mime_type>
10 <dot_all>true</dot_all>
11 <not_multiline>true</not_multiline>
12 </config>
13 <rules>
14 <state name="root">
15 <rule pattern="\s+">
16 <token type="Text"/>
17 </rule>
18 <rule pattern="//.*?\n">
19 <token type="CommentSingle"/>
20 </rule>
21 <rule pattern="/\*.*?\*/">
22 <token type="CommentMultiline"/>
23 </rule>
24 <rule pattern="/(\\\\|\\/|[^/\n])*/[gim]*">
25 <token type="LiteralStringRegex"/>
26 </rule>
27 <rule pattern="[~^*!%&amp;&lt;&gt;|+=:;,/?\\-]+">
28 <token type="Operator"/>
29 </rule>
30 <rule pattern="[{}\[\]();.]+">
31 <token type="Punctuation"/>
32 </rule>
33 <rule pattern="(instanceof|arguments|continue|default|typeof|switch|return|catch|break|while|throw|each|this|with|else|case|var|new|for|try|if|do|in)\b">
34 <token type="Keyword"/>
35 </rule>
36 <rule pattern="(implements|protected|namespace|interface|intrinsic|override|function|internal|private|package|extends|dynamic|import|native|return|public|static|class|const|super|final|get|set)\b">
37 <token type="KeywordDeclaration"/>
38 </rule>
39 <rule pattern="(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b">
40 <token type="KeywordConstant"/>
41 </rule>
42 <rule pattern="(IDynamicPropertyOutputIDynamicPropertyWriter|DisplacmentMapFilterMode|AccessibilityProperties|ContextMenuBuiltInItems|SharedObjectFlushStatus|DisplayObjectContainer|IllegalOperationError|DisplacmentMapFilter|InterpolationMethod|URLLoaderDataFormat|PrintJobOrientation|ActionScriptVersion|BitmapFilterQuality|GradientBevelFilter|GradientGlowFilter|DeleteObjectSample|StackOverflowError|SoundLoaderContext|ScriptTimeoutError|SecurityErrorEvent|InteractiveObject|StageDisplayState|FileReferenceList|TextFieldAutoSize|ApplicationDomain|BitmapDataChannel|ColorMatrixFilter|ExternalInterface|IMEConversionMode|DropShadowFilter|URLRequestHeader|ContextMenuEvent|ConvultionFilter|URLRequestMethod|BitmapFilterType|IEventDispatcher|ContextMenuItem|LocalConnection|InvalidSWFError|AsyncErrorEvent|MovieClipLoader|IBitmapDrawable|PrintJobOptions|EventDispatcher|NewObjectSample|HTTPStatusEvent|TextFormatAlign|IExternalizable|FullScreenEvent|DefinitionError|TextLineMetrics|NetStatusEvent|ColorTransform|ObjectEncoding|SecurityDomain|StageScaleMode|FocusDirection|ReferenceError|SoundTransform|KeyboardEvent|DisplayObject|PixelSnapping|LoaderContext|NetConnection|SecurityPanel|SecurityError|FileReference|AsBroadcaster|LineScaleMode|AntiAliasType|Accessibility|TextFieldType|URLVariabeles|ActivityEvent|ProgressEvent|TextColorType|StageQuality|TextSnapshot|Capabilities|BitmapFilter|SpreadMethod|GradientType|TextRenderer|SoundChannel|SharedObject|IOErrorEvent|SimpleButton|ContextMenu|InvokeEvent|CSMSettings|SyntaxError|StatusEvent|KeyLocation|IDataOutput|VerifyError|XMLDocument|XMLNodeType|MemoryError|GridFitType|BevelFilter|ErrorEvent|FrameLabel|GlowFilter|LoaderInfo|Microphone|MorphShape|BlurFilter|MouseEvent|FocusEvent|SoundMixer|FileFilter|TimerEvent|JointStyle|EventPhase|StageAlign|Dictionary|URLRequest|StyleSheet|SWFVersion|IDataInput|StaticText|RangeError|BitmapData|TextFormat|StackFrame|Namespace|SyncEvent|Rectangle|URLLoader|TypeError|Responder|NetStream|BlendMode|CapsStyle|DataEvent|ByteArray|MovieClip|Transform|TextField|Selection|AVM1Movie|XMLSocket|URLStream|FontStyle|EvalError|FontType|LoadVars|Graphics|Security|IMEEvent|URIError|Keyboard|Function|EOFError|PrintJob|IOError|XMLList|Boolean|ID3Info|XMLNode|Bitmap|String|RegExp|Sample|Object|Sprite|System|Endian|Matrix|Camera|Locale|Number|Loader|Socket|QName|Class|Timer|Sound|Shape|XMLUI|Mouse|Scene|Stage|Color|Point|Video|Error|Event|Proxy|Array|Date|uint|Math|Font|int|Key|IME|XML)\b">
43 <token type="NameBuiltin"/>
44 </rule>
45 <rule pattern="(decodeURIComponent|updateAfterEvent|clearInterval|setInterval|getVersion|parseFloat|fscommand|isXMLName|encodeURI|decodeURI|getTimer|unescape|isFinite|parseInt|getURL|escape|trace|isNaN|eval)\b">
46 <token type="NameFunction"/>
47 </rule>
48 <rule pattern="[$a-zA-Z_]\w*">
49 <token type="NameOther"/>
50 </rule>
51 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
52 <token type="LiteralNumberFloat"/>
53 </rule>
54 <rule pattern="0x[0-9a-f]+">
55 <token type="LiteralNumberHex"/>
56 </rule>
57 <rule pattern="[0-9]+">
58 <token type="LiteralNumberInteger"/>
59 </rule>
60 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
61 <token type="LiteralStringDouble"/>
62 </rule>
63 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
64 <token type="LiteralStringSingle"/>
65 </rule>
66 </state>
67 </rules>
68</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml
new file mode 100644
index 0000000..e5f6538
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/actionscript_3.xml
@@ -0,0 +1,163 @@
1<lexer>
2 <config>
3 <name>ActionScript 3</name>
4 <alias>as3</alias>
5 <alias>actionscript3</alias>
6 <filename>*.as</filename>
7 <mime_type>application/x-actionscript3</mime_type>
8 <mime_type>text/x-actionscript3</mime_type>
9 <mime_type>text/actionscript3</mime_type>
10 <dot_all>true</dot_all>
11 </config>
12 <rules>
13 <state name="funcparams">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="(\s*)(\.\.\.)?([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?|\*)(\s*)">
18 <bygroups>
19 <token type="Text"/>
20 <token type="Punctuation"/>
21 <token type="Name"/>
22 <token type="Text"/>
23 <token type="Operator"/>
24 <token type="Text"/>
25 <token type="KeywordType"/>
26 <token type="Text"/>
27 </bygroups>
28 <push state="defval"/>
29 </rule>
30 <rule pattern="\)">
31 <token type="Operator"/>
32 <push state="type"/>
33 </rule>
34 </state>
35 <state name="type">
36 <rule pattern="(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?|\*)">
37 <bygroups>
38 <token type="Text"/>
39 <token type="Operator"/>
40 <token type="Text"/>
41 <token type="KeywordType"/>
42 </bygroups>
43 <pop depth="2"/>
44 </rule>
45 <rule pattern="\s+">
46 <token type="Text"/>
47 <pop depth="2"/>
48 </rule>
49 <rule>
50 <pop depth="2"/>
51 </rule>
52 </state>
53 <state name="defval">
54 <rule pattern="(=)(\s*)([^(),]+)(\s*)(,?)">
55 <bygroups>
56 <token type="Operator"/>
57 <token type="Text"/>
58 <usingself state="root"/>
59 <token type="Text"/>
60 <token type="Operator"/>
61 </bygroups>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern=",">
65 <token type="Operator"/>
66 <pop depth="1"/>
67 </rule>
68 <rule>
69 <pop depth="1"/>
70 </rule>
71 </state>
72 <state name="root">
73 <rule pattern="\s+">
74 <token type="Text"/>
75 </rule>
76 <rule pattern="(function\s+)([$a-zA-Z_]\w*)(\s*)(\()">
77 <bygroups>
78 <token type="KeywordDeclaration"/>
79 <token type="NameFunction"/>
80 <token type="Text"/>
81 <token type="Operator"/>
82 </bygroups>
83 <push state="funcparams"/>
84 </rule>
85 <rule pattern="(var|const)(\s+)([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?)">
86 <bygroups>
87 <token type="KeywordDeclaration"/>
88 <token type="Text"/>
89 <token type="Name"/>
90 <token type="Text"/>
91 <token type="Punctuation"/>
92 <token type="Text"/>
93 <token type="KeywordType"/>
94 </bygroups>
95 </rule>
96 <rule pattern="(import|package)(\s+)((?:[$a-zA-Z_]\w*|\.)+)(\s*)">
97 <bygroups>
98 <token type="Keyword"/>
99 <token type="Text"/>
100 <token type="NameNamespace"/>
101 <token type="Text"/>
102 </bygroups>
103 </rule>
104 <rule pattern="(new)(\s+)([$a-zA-Z_]\w*(?:\.&lt;\w+&gt;)?)(\s*)(\()">
105 <bygroups>
106 <token type="Keyword"/>
107 <token type="Text"/>
108 <token type="KeywordType"/>
109 <token type="Text"/>
110 <token type="Operator"/>
111 </bygroups>
112 </rule>
113 <rule pattern="//.*?\n">
114 <token type="CommentSingle"/>
115 </rule>
116 <rule pattern="/\*.*?\*/">
117 <token type="CommentMultiline"/>
118 </rule>
119 <rule pattern="/(\\\\|\\/|[^\n])*/[gisx]*">
120 <token type="LiteralStringRegex"/>
121 </rule>
122 <rule pattern="(\.)([$a-zA-Z_]\w*)">
123 <bygroups>
124 <token type="Operator"/>
125 <token type="NameAttribute"/>
126 </bygroups>
127 </rule>
128 <rule pattern="(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">
129 <token type="Keyword"/>
130 </rule>
131 <rule pattern="(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\b">
132 <token type="KeywordDeclaration"/>
133 </rule>
134 <rule pattern="(true|false|null|NaN|Infinity|-Infinity|undefined|void)\b">
135 <token type="KeywordConstant"/>
136 </rule>
137 <rule pattern="(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\b">
138 <token type="NameFunction"/>
139 </rule>
140 <rule pattern="[$a-zA-Z_]\w*">
141 <token type="Name"/>
142 </rule>
143 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
144 <token type="LiteralNumberFloat"/>
145 </rule>
146 <rule pattern="0x[0-9a-f]+">
147 <token type="LiteralNumberHex"/>
148 </rule>
149 <rule pattern="[0-9]+">
150 <token type="LiteralNumberInteger"/>
151 </rule>
152 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
153 <token type="LiteralStringDouble"/>
154 </rule>
155 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
156 <token type="LiteralStringSingle"/>
157 </rule>
158 <rule pattern="[~^*!%&amp;&lt;&gt;|+=:;,/?\\{}\[\]().-]+">
159 <token type="Operator"/>
160 </rule>
161 </state>
162 </rules>
163</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml
new file mode 100644
index 0000000..5854a20
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ada.xml
@@ -0,0 +1,321 @@
1<lexer>
2 <config>
3 <name>Ada</name>
4 <alias>ada</alias>
5 <alias>ada95</alias>
6 <alias>ada2005</alias>
7 <filename>*.adb</filename>
8 <filename>*.ads</filename>
9 <filename>*.ada</filename>
10 <mime_type>text/x-ada</mime_type>
11 <case_insensitive>true</case_insensitive>
12 </config>
13 <rules>
14 <state name="end">
15 <rule pattern="(if|case|record|loop|select)">
16 <token type="KeywordReserved"/>
17 </rule>
18 <rule pattern="&#34;[^&#34;]+&#34;|[\w.]+">
19 <token type="NameFunction"/>
20 </rule>
21 <rule pattern="\s+">
22 <token type="Text"/>
23 </rule>
24 <rule pattern=";">
25 <token type="Punctuation"/>
26 <pop depth="1"/>
27 </rule>
28 </state>
29 <state name="array_def">
30 <rule pattern=";">
31 <token type="Punctuation"/>
32 <pop depth="1"/>
33 </rule>
34 <rule pattern="(\w+)(\s+)(range)">
35 <bygroups>
36 <token type="KeywordType"/>
37 <token type="Text"/>
38 <token type="KeywordReserved"/>
39 </bygroups>
40 </rule>
41 <rule>
42 <include state="root"/>
43 </rule>
44 </state>
45 <state name="package_instantiation">
46 <rule pattern="(&#34;[^&#34;]+&#34;|\w+)(\s+)(=&gt;)">
47 <bygroups>
48 <token type="NameVariable"/>
49 <token type="Text"/>
50 <token type="Punctuation"/>
51 </bygroups>
52 </rule>
53 <rule pattern="[\w.\&#39;&#34;]">
54 <token type="Text"/>
55 </rule>
56 <rule pattern="\)">
57 <token type="Punctuation"/>
58 <pop depth="1"/>
59 </rule>
60 <rule>
61 <include state="root"/>
62 </rule>
63 </state>
64 <state name="subprogram">
65 <rule pattern="\(">
66 <token type="Punctuation"/>
67 <push state="#pop" state="formal_part"/>
68 </rule>
69 <rule pattern=";">
70 <token type="Punctuation"/>
71 <pop depth="1"/>
72 </rule>
73 <rule pattern="is\b">
74 <token type="KeywordReserved"/>
75 <pop depth="1"/>
76 </rule>
77 <rule pattern="&#34;[^&#34;]+&#34;|\w+">
78 <token type="NameFunction"/>
79 </rule>
80 <rule>
81 <include state="root"/>
82 </rule>
83 </state>
84 <state name="type_def">
85 <rule pattern=";">
86 <token type="Punctuation"/>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="\(">
90 <token type="Punctuation"/>
91 <push state="formal_part"/>
92 </rule>
93 <rule pattern="with|and|use">
94 <token type="KeywordReserved"/>
95 </rule>
96 <rule pattern="array\b">
97 <token type="KeywordReserved"/>
98 <push state="#pop" state="array_def"/>
99 </rule>
100 <rule pattern="record\b">
101 <token type="KeywordReserved"/>
102 <push state="record_def"/>
103 </rule>
104 <rule pattern="(null record)(;)">
105 <bygroups>
106 <token type="KeywordReserved"/>
107 <token type="Punctuation"/>
108 </bygroups>
109 <pop depth="1"/>
110 </rule>
111 <rule>
112 <include state="root"/>
113 </rule>
114 </state>
115 <state name="import">
116 <rule pattern="[\w.]+">
117 <token type="NameNamespace"/>
118 <pop depth="1"/>
119 </rule>
120 <rule>
121 <pop depth="1"/>
122 </rule>
123 </state>
124 <state name="formal_part">
125 <rule pattern="\)">
126 <token type="Punctuation"/>
127 <pop depth="1"/>
128 </rule>
129 <rule pattern="\w+">
130 <token type="NameVariable"/>
131 </rule>
132 <rule pattern=",|:[^=]">
133 <token type="Punctuation"/>
134 </rule>
135 <rule pattern="(in|not|null|out|access)\b">
136 <token type="KeywordReserved"/>
137 </rule>
138 <rule>
139 <include state="root"/>
140 </rule>
141 </state>
142 <state name="package">
143 <rule pattern="body">
144 <token type="KeywordDeclaration"/>
145 </rule>
146 <rule pattern="is\s+new|renames">
147 <token type="KeywordReserved"/>
148 </rule>
149 <rule pattern="is">
150 <token type="KeywordReserved"/>
151 <pop depth="1"/>
152 </rule>
153 <rule pattern=";">
154 <token type="Punctuation"/>
155 <pop depth="1"/>
156 </rule>
157 <rule pattern="\(">
158 <token type="Punctuation"/>
159 <push state="package_instantiation"/>
160 </rule>
161 <rule pattern="([\w.]+)">
162 <token type="NameClass"/>
163 </rule>
164 <rule>
165 <include state="root"/>
166 </rule>
167 </state>
168 <state name="attribute">
169 <rule pattern="(&#39;)(\w+)">
170 <bygroups>
171 <token type="Punctuation"/>
172 <token type="NameAttribute"/>
173 </bygroups>
174 </rule>
175 </state>
176 <state name="record_def">
177 <rule pattern="end record">
178 <token type="KeywordReserved"/>
179 <pop depth="1"/>
180 </rule>
181 <rule>
182 <include state="root"/>
183 </rule>
184 </state>
185 <state name="root">
186 <rule pattern="[^\S\n]+">
187 <token type="Text"/>
188 </rule>
189 <rule pattern="--.*?\n">
190 <token type="CommentSingle"/>
191 </rule>
192 <rule pattern="[^\S\n]+">
193 <token type="Text"/>
194 </rule>
195 <rule pattern="function|procedure|entry">
196 <token type="KeywordDeclaration"/>
197 <push state="subprogram"/>
198 </rule>
199 <rule pattern="(subtype|type)(\s+)(\w+)">
200 <bygroups>
201 <token type="KeywordDeclaration"/>
202 <token type="Text"/>
203 <token type="KeywordType"/>
204 </bygroups>
205 <push state="type_def"/>
206 </rule>
207 <rule pattern="task|protected">
208 <token type="KeywordDeclaration"/>
209 </rule>
210 <rule pattern="(subtype)(\s+)">
211 <bygroups>
212 <token type="KeywordDeclaration"/>
213 <token type="Text"/>
214 </bygroups>
215 </rule>
216 <rule pattern="(end)(\s+)">
217 <bygroups>
218 <token type="KeywordReserved"/>
219 <token type="Text"/>
220 </bygroups>
221 <push state="end"/>
222 </rule>
223 <rule pattern="(pragma)(\s+)(\w+)">
224 <bygroups>
225 <token type="KeywordReserved"/>
226 <token type="Text"/>
227 <token type="CommentPreproc"/>
228 </bygroups>
229 </rule>
230 <rule pattern="(true|false|null)\b">
231 <token type="KeywordConstant"/>
232 </rule>
233 <rule pattern="(Short_Short_Integer|Short_Short_Float|Long_Long_Integer|Long_Long_Float|Wide_Character|Reference_Type|Short_Integer|Long_Integer|Wide_String|Short_Float|Controlled|Long_Float|Character|Generator|File_Type|File_Mode|Positive|Duration|Boolean|Natural|Integer|Address|Cursor|String|Count|Float|Byte)\b">
234 <token type="KeywordType"/>
235 </rule>
236 <rule pattern="(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b">
237 <token type="OperatorWord"/>
238 </rule>
239 <rule pattern="generic|private">
240 <token type="KeywordDeclaration"/>
241 </rule>
242 <rule pattern="package">
243 <token type="KeywordDeclaration"/>
244 <push state="package"/>
245 </rule>
246 <rule pattern="array\b">
247 <token type="KeywordReserved"/>
248 <push state="array_def"/>
249 </rule>
250 <rule pattern="(with|use)(\s+)">
251 <bygroups>
252 <token type="KeywordNamespace"/>
253 <token type="Text"/>
254 </bygroups>
255 <push state="import"/>
256 </rule>
257 <rule pattern="(\w+)(\s*)(:)(\s*)(constant)">
258 <bygroups>
259 <token type="NameConstant"/>
260 <token type="Text"/>
261 <token type="Punctuation"/>
262 <token type="Text"/>
263 <token type="KeywordReserved"/>
264 </bygroups>
265 </rule>
266 <rule pattern="&lt;&lt;\w+&gt;&gt;">
267 <token type="NameLabel"/>
268 </rule>
269 <rule pattern="(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while)">
270 <bygroups>
271 <token type="NameLabel"/>
272 <token type="Text"/>
273 <token type="Punctuation"/>
274 <token type="Text"/>
275 <token type="KeywordReserved"/>
276 </bygroups>
277 </rule>
278 <rule pattern="\b(synchronized|overriding|terminate|interface|exception|protected|separate|constant|abstract|renames|reverse|subtype|aliased|declare|requeue|limited|return|tagged|access|record|select|accept|digits|others|pragma|entry|elsif|delta|delay|array|until|range|raise|while|begin|abort|else|loop|when|type|null|then|body|task|goto|case|exit|end|for|abs|xor|all|new|out|is|of|if|or|do|at)\b">
279 <token type="KeywordReserved"/>
280 </rule>
281 <rule pattern="&#34;[^&#34;]*&#34;">
282 <token type="LiteralString"/>
283 </rule>
284 <rule>
285 <include state="attribute"/>
286 </rule>
287 <rule>
288 <include state="numbers"/>
289 </rule>
290 <rule pattern="&#39;[^&#39;]&#39;">
291 <token type="LiteralStringChar"/>
292 </rule>
293 <rule pattern="(\w+)(\s*|[(,])">
294 <bygroups>
295 <token type="Name"/>
296 <usingself state="root"/>
297 </bygroups>
298 </rule>
299 <rule pattern="(&lt;&gt;|=&gt;|:=|[()|:;,.&#39;])">
300 <token type="Punctuation"/>
301 </rule>
302 <rule pattern="[*&lt;&gt;+=/&amp;-]">
303 <token type="Operator"/>
304 </rule>
305 <rule pattern="\n+">
306 <token type="Text"/>
307 </rule>
308 </state>
309 <state name="numbers">
310 <rule pattern="[0-9_]+#[0-9a-f]+#">
311 <token type="LiteralNumberHex"/>
312 </rule>
313 <rule pattern="[0-9_]+\.[0-9_]*">
314 <token type="LiteralNumberFloat"/>
315 </rule>
316 <rule pattern="[0-9_]+">
317 <token type="LiteralNumberInteger"/>
318 </rule>
319 </state>
320 </rules>
321</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml
new file mode 100644
index 0000000..30bad5a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/al.xml
@@ -0,0 +1,75 @@
1<lexer>
2 <config>
3 <name>AL</name>
4 <alias>al</alias>
5 <filename>*.al</filename>
6 <filename>*.dal</filename>
7 <mime_type>text/x-al</mime_type>
8 <case_insensitive>true</case_insensitive>
9 <dot_all>true</dot_all>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="\s+">
14 <token type="TextWhitespace"/>
15 </rule>
16 <rule pattern="(?s)\/\*.*?\\*\*\/">
17 <token type="CommentMultiline"/>
18 </rule>
19 <rule pattern="(?s)//.*?\n">
20 <token type="CommentSingle"/>
21 </rule>
22 <rule pattern="\&#34;([^\&#34;])*\&#34;">
23 <token type="Text"/>
24 </rule>
25 <rule pattern="&#39;([^&#39;])*&#39;">
26 <token type="LiteralString"/>
27 </rule>
28 <rule pattern="\b(?i:(ARRAY|ASSERTERROR|BEGIN|BREAK|CASE|DO|DOWNTO|ELSE|END|EVENT|EXIT|FOR|FOREACH|FUNCTION|IF|IMPLEMENTS|IN|INDATASET|INTERFACE|INTERNAL|LOCAL|OF|PROCEDURE|PROGRAM|PROTECTED|REPEAT|RUNONCLIENT|SECURITYFILTERING|SUPPRESSDISPOSE|TEMPORARY|THEN|TO|TRIGGER|UNTIL|VAR|WHILE|WITH|WITHEVENTS))\b">
29 <token type="Keyword"/>
30 </rule>
31 <rule pattern="\b(?i:(AND|DIV|MOD|NOT|OR|XOR))\b">
32 <token type="OperatorWord"/>
33 </rule>
34 <rule pattern="\b(?i:(AVERAGE|CONST|COUNT|EXIST|FIELD|FILTER|LOOKUP|MAX|MIN|ORDER|SORTING|SUM|TABLEDATA|UPPERLIMIT|WHERE|ASCENDING|DESCENDING))\b">
35 <token type="Keyword"/>
36 </rule>
37 <rule pattern="\b(?i:(CODEUNIT|PAGE|PAGEEXTENSION|PAGECUSTOMIZATION|DOTNET|ENUM|ENUMEXTENSION|VALUE|QUERY|REPORT|TABLE|TABLEEXTENSION|XMLPORT|PROFILE|CONTROLADDIN|REPORTEXTENSION|INTERFACE|PERMISSIONSET|PERMISSIONSETEXTENSION|ENTITLEMENT))\b">
38 <token type="Keyword"/>
39 </rule>
40 <rule pattern="\b(?i:(Action|Array|Automation|BigInteger|BigText|Blob|Boolean|Byte|Char|ClientType|Code|Codeunit|CompletionTriggerErrorLevel|ConnectionType|Database|DataClassification|DataScope|Date|DateFormula|DateTime|Decimal|DefaultLayout|Dialog|Dictionary|DotNet|DotNetAssembly|DotNetTypeDeclaration|Duration|Enum|ErrorInfo|ErrorType|ExecutionContext|ExecutionMode|FieldClass|FieldRef|FieldType|File|FilterPageBuilder|Guid|InStream|Integer|Joker|KeyRef|List|ModuleDependencyInfo|ModuleInfo|None|Notification|NotificationScope|ObjectType|Option|OutStream|Page|PageResult|Query|Record|RecordId|RecordRef|Report|ReportFormat|SecurityFilter|SecurityFiltering|Table|TableConnectionType|TableFilter|TestAction|TestField|TestFilterField|TestPage|TestPermissions|TestRequestPage|Text|TextBuilder|TextConst|TextEncoding|Time|TransactionModel|TransactionType|Variant|Verbosity|Version|XmlPort|HttpContent|HttpHeaders|HttpClient|HttpRequestMessage|HttpResponseMessage|JsonToken|JsonValue|JsonArray|JsonObject|View|Views|XmlAttribute|XmlAttributeCollection|XmlComment|XmlCData|XmlDeclaration|XmlDocument|XmlDocumentType|XmlElement|XmlNamespaceManager|XmlNameTable|XmlNode|XmlNodeList|XmlProcessingInstruction|XmlReadOptions|XmlText|XmlWriteOptions|WebServiceActionContext|WebServiceActionResultCode|SessionSettings))\b">
41 <token type="Keyword"/>
42 </rule>
43 <rule pattern="\b([&lt;&gt;]=|&lt;&gt;|&lt;|&gt;)\b?">
44 <token type="Operator"/>
45 </rule>
46 <rule pattern="\b(\-|\+|\/|\*)\b">
47 <token type="Operator"/>
48 </rule>
49 <rule pattern="\s*(\:=|\+=|-=|\/=|\*=)\s*?">
50 <token type="Operator"/>
51 </rule>
52 <rule pattern="\b(?i:(ADD|ADDFIRST|ADDLAST|ADDAFTER|ADDBEFORE|ACTION|ACTIONS|AREA|ASSEMBLY|CHARTPART|CUEGROUP|CUSTOMIZES|COLUMN|DATAITEM|DATASET|ELEMENTS|EXTENDS|FIELD|FIELDGROUP|FIELDATTRIBUTE|FIELDELEMENT|FIELDGROUPS|FIELDS|FILTER|FIXED|GRID|GROUP|MOVEAFTER|MOVEBEFORE|KEY|KEYS|LABEL|LABELS|LAYOUT|MODIFY|MOVEFIRST|MOVELAST|MOVEBEFORE|MOVEAFTER|PART|REPEATER|USERCONTROL|REQUESTPAGE|SCHEMA|SEPARATOR|SYSTEMPART|TABLEELEMENT|TEXTATTRIBUTE|TEXTELEMENT|TYPE))\b">
53 <token type="Keyword"/>
54 </rule>
55 <rule pattern="\s*[(\.\.)&amp;\|]\s*">
56 <token type="Operator"/>
57 </rule>
58 <rule pattern="\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b">
59 <token type="LiteralNumber"/>
60 </rule>
61 <rule pattern="[;:,]">
62 <token type="Punctuation"/>
63 </rule>
64 <rule pattern="#[ \t]*(if|else|elif|endif|define|undef|region|endregion|pragma)\b.*?\n">
65 <token type="CommentPreproc"/>
66 </rule>
67 <rule pattern="\w+">
68 <token type="Text"/>
69 </rule>
70 <rule pattern=".">
71 <token type="Text"/>
72 </rule>
73 </state>
74 </rules>
75</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml
new file mode 100644
index 0000000..84fe20b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/angular2.xml
@@ -0,0 +1,108 @@
1<lexer>
2 <config>
3 <name>Angular2</name>
4 <alias>ng2</alias>
5 </config>
6 <rules>
7 <state name="attr">
8 <rule pattern="&#34;.*?&#34;">
9 <token type="LiteralString"/>
10 <pop depth="1"/>
11 </rule>
12 <rule pattern="&#39;.*?&#39;">
13 <token type="LiteralString"/>
14 <pop depth="1"/>
15 </rule>
16 <rule pattern="[^\s&gt;]+">
17 <token type="LiteralString"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="[^{([*#]+">
23 <token type="Other"/>
24 </rule>
25 <rule pattern="(\{\{)(\s*)">
26 <bygroups>
27 <token type="CommentPreproc"/>
28 <token type="Text"/>
29 </bygroups>
30 <push state="ngExpression"/>
31 </rule>
32 <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)">
33 <bygroups>
34 <token type="Punctuation"/>
35 <token type="NameAttribute"/>
36 <token type="Punctuation"/>
37 <token type="Text"/>
38 <token type="Operator"/>
39 <token type="Text"/>
40 </bygroups>
41 <push state="attr"/>
42 </rule>
43 <rule pattern="([([]+)([\w:.-]+)([\])]+)(\s*)">
44 <bygroups>
45 <token type="Punctuation"/>
46 <token type="NameAttribute"/>
47 <token type="Punctuation"/>
48 <token type="Text"/>
49 </bygroups>
50 </rule>
51 <rule pattern="([*#])([\w:.-]+)(\s*)(=)(\s*)">
52 <bygroups>
53 <token type="Punctuation"/>
54 <token type="NameAttribute"/>
55 <token type="Punctuation"/>
56 <token type="Operator"/>
57 </bygroups>
58 <push state="attr"/>
59 </rule>
60 <rule pattern="([*#])([\w:.-]+)(\s*)">
61 <bygroups>
62 <token type="Punctuation"/>
63 <token type="NameAttribute"/>
64 <token type="Punctuation"/>
65 </bygroups>
66 </rule>
67 </state>
68 <state name="ngExpression">
69 <rule pattern="\s+(\|\s+)?">
70 <token type="Text"/>
71 </rule>
72 <rule pattern="\}\}">
73 <token type="CommentPreproc"/>
74 <pop depth="1"/>
75 </rule>
76 <rule pattern=":?(true|false)">
77 <token type="LiteralStringBoolean"/>
78 </rule>
79 <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
80 <token type="LiteralStringDouble"/>
81 </rule>
82 <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
83 <token type="LiteralStringSingle"/>
84 </rule>
85 <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
86 <token type="LiteralNumber"/>
87 </rule>
88 <rule pattern="[a-zA-Z][\w-]*(\(.*\))?">
89 <token type="NameVariable"/>
90 </rule>
91 <rule pattern="\.[\w-]+(\(.*\))?">
92 <token type="NameVariable"/>
93 </rule>
94 <rule pattern="(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)">
95 <bygroups>
96 <token type="Operator"/>
97 <token type="Text"/>
98 <token type="LiteralString"/>
99 <token type="Text"/>
100 <token type="Operator"/>
101 <token type="Text"/>
102 <token type="LiteralString"/>
103 <token type="Text"/>
104 </bygroups>
105 </rule>
106 </state>
107 </rules>
108</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml
new file mode 100644
index 0000000..e57edd4
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/antlr.xml
@@ -0,0 +1,317 @@
1<lexer>
2 <config>
3 <name>ANTLR</name>
4 <alias>antlr</alias>
5 </config>
6 <rules>
7 <state name="nested-arg-action">
8 <rule pattern="([^$\[\]\&#39;&#34;/]+|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|/)+">
9 <token type="Other"/>
10 </rule>
11 <rule pattern="\[">
12 <token type="Punctuation"/>
13 <push/>
14 </rule>
15 <rule pattern="\]">
16 <token type="Punctuation"/>
17 <pop depth="1"/>
18 </rule>
19 <rule pattern="(\$[a-zA-Z]+)(\.?)(text|value)?">
20 <bygroups>
21 <token type="NameVariable"/>
22 <token type="Punctuation"/>
23 <token type="NameProperty"/>
24 </bygroups>
25 </rule>
26 <rule pattern="(\\\\|\\\]|\\\[|[^\[\]])+">
27 <token type="Other"/>
28 </rule>
29 </state>
30 <state name="exception">
31 <rule pattern="\n">
32 <token type="TextWhitespace"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="\s">
36 <token type="TextWhitespace"/>
37 </rule>
38 <rule>
39 <include state="comments"/>
40 </rule>
41 <rule pattern="\[">
42 <token type="Punctuation"/>
43 <push state="nested-arg-action"/>
44 </rule>
45 <rule pattern="\{">
46 <token type="Punctuation"/>
47 <push state="action"/>
48 </rule>
49 </state>
50 <state name="whitespace">
51 <rule pattern="\s+">
52 <token type="TextWhitespace"/>
53 </rule>
54 </state>
55 <state name="root">
56 <rule>
57 <include state="whitespace"/>
58 </rule>
59 <rule>
60 <include state="comments"/>
61 </rule>
62 <rule pattern="(lexer|parser|tree)?(\s*)(grammar\b)(\s*)([A-Za-z]\w*)(;)">
63 <bygroups>
64 <token type="Keyword"/>
65 <token type="TextWhitespace"/>
66 <token type="Keyword"/>
67 <token type="TextWhitespace"/>
68 <token type="NameClass"/>
69 <token type="Punctuation"/>
70 </bygroups>
71 </rule>
72 <rule pattern="options\b">
73 <token type="Keyword"/>
74 <push state="options"/>
75 </rule>
76 <rule pattern="tokens\b">
77 <token type="Keyword"/>
78 <push state="tokens"/>
79 </rule>
80 <rule pattern="(scope)(\s*)([A-Za-z]\w*)(\s*)(\{)">
81 <bygroups>
82 <token type="Keyword"/>
83 <token type="TextWhitespace"/>
84 <token type="NameVariable"/>
85 <token type="TextWhitespace"/>
86 <token type="Punctuation"/>
87 </bygroups>
88 <push state="action"/>
89 </rule>
90 <rule pattern="(catch|finally)\b">
91 <token type="Keyword"/>
92 <push state="exception"/>
93 </rule>
94 <rule pattern="(@[A-Za-z]\w*)(\s*)(::)?(\s*)([A-Za-z]\w*)(\s*)(\{)">
95 <bygroups>
96 <token type="NameLabel"/>
97 <token type="TextWhitespace"/>
98 <token type="Punctuation"/>
99 <token type="TextWhitespace"/>
100 <token type="NameLabel"/>
101 <token type="TextWhitespace"/>
102 <token type="Punctuation"/>
103 </bygroups>
104 <push state="action"/>
105 </rule>
106 <rule pattern="((?:protected|private|public|fragment)\b)?(\s*)([A-Za-z]\w*)(!)?">
107 <bygroups>
108 <token type="Keyword"/>
109 <token type="TextWhitespace"/>
110 <token type="NameLabel"/>
111 <token type="Punctuation"/>
112 </bygroups>
113 <push state="rule-alts" state="rule-prelims"/>
114 </rule>
115 </state>
116 <state name="tokens">
117 <rule>
118 <include state="whitespace"/>
119 </rule>
120 <rule>
121 <include state="comments"/>
122 </rule>
123 <rule pattern="\{">
124 <token type="Punctuation"/>
125 </rule>
126 <rule pattern="([A-Z]\w*)(\s*)(=)?(\s*)(\&#39;(?:\\\\|\\\&#39;|[^\&#39;]*)\&#39;)?(\s*)(;)">
127 <bygroups>
128 <token type="NameLabel"/>
129 <token type="TextWhitespace"/>
130 <token type="Punctuation"/>
131 <token type="TextWhitespace"/>
132 <token type="LiteralString"/>
133 <token type="TextWhitespace"/>
134 <token type="Punctuation"/>
135 </bygroups>
136 </rule>
137 <rule pattern="\}">
138 <token type="Punctuation"/>
139 <pop depth="1"/>
140 </rule>
141 </state>
142 <state name="options">
143 <rule>
144 <include state="whitespace"/>
145 </rule>
146 <rule>
147 <include state="comments"/>
148 </rule>
149 <rule pattern="\{">
150 <token type="Punctuation"/>
151 </rule>
152 <rule pattern="([A-Za-z]\w*)(\s*)(=)(\s*)([A-Za-z]\w*|\&#39;(?:\\\\|\\\&#39;|[^\&#39;]*)\&#39;|[0-9]+|\*)(\s*)(;)">
153 <bygroups>
154 <token type="NameVariable"/>
155 <token type="TextWhitespace"/>
156 <token type="Punctuation"/>
157 <token type="TextWhitespace"/>
158 <token type="Text"/>
159 <token type="TextWhitespace"/>
160 <token type="Punctuation"/>
161 </bygroups>
162 </rule>
163 <rule pattern="\}">
164 <token type="Punctuation"/>
165 <pop depth="1"/>
166 </rule>
167 </state>
168 <state name="rule-alts">
169 <rule>
170 <include state="whitespace"/>
171 </rule>
172 <rule>
173 <include state="comments"/>
174 </rule>
175 <rule pattern="options\b">
176 <token type="Keyword"/>
177 <push state="options"/>
178 </rule>
179 <rule pattern=":">
180 <token type="Punctuation"/>
181 </rule>
182 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
183 <token type="LiteralString"/>
184 </rule>
185 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
186 <token type="LiteralString"/>
187 </rule>
188 <rule pattern="&lt;&lt;([^&gt;]|&gt;[^&gt;])&gt;&gt;">
189 <token type="LiteralString"/>
190 </rule>
191 <rule pattern="\$?[A-Z_]\w*">
192 <token type="NameConstant"/>
193 </rule>
194 <rule pattern="\$?[a-z_]\w*">
195 <token type="NameVariable"/>
196 </rule>
197 <rule pattern="(\+|\||-&gt;|=&gt;|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)">
198 <token type="Operator"/>
199 </rule>
200 <rule pattern=",">
201 <token type="Punctuation"/>
202 </rule>
203 <rule pattern="\[">
204 <token type="Punctuation"/>
205 <push state="nested-arg-action"/>
206 </rule>
207 <rule pattern="\{">
208 <token type="Punctuation"/>
209 <push state="action"/>
210 </rule>
211 <rule pattern=";">
212 <token type="Punctuation"/>
213 <pop depth="1"/>
214 </rule>
215 </state>
216 <state name="rule-prelims">
217 <rule>
218 <include state="whitespace"/>
219 </rule>
220 <rule>
221 <include state="comments"/>
222 </rule>
223 <rule pattern="returns\b">
224 <token type="Keyword"/>
225 </rule>
226 <rule pattern="\[">
227 <token type="Punctuation"/>
228 <push state="nested-arg-action"/>
229 </rule>
230 <rule pattern="\{">
231 <token type="Punctuation"/>
232 <push state="action"/>
233 </rule>
234 <rule pattern="(throws)(\s+)([A-Za-z]\w*)">
235 <bygroups>
236 <token type="Keyword"/>
237 <token type="TextWhitespace"/>
238 <token type="NameLabel"/>
239 </bygroups>
240 </rule>
241 <rule pattern="(,)(\s*)([A-Za-z]\w*)">
242 <bygroups>
243 <token type="Punctuation"/>
244 <token type="TextWhitespace"/>
245 <token type="NameLabel"/>
246 </bygroups>
247 </rule>
248 <rule pattern="options\b">
249 <token type="Keyword"/>
250 <push state="options"/>
251 </rule>
252 <rule pattern="(scope)(\s+)(\{)">
253 <bygroups>
254 <token type="Keyword"/>
255 <token type="TextWhitespace"/>
256 <token type="Punctuation"/>
257 </bygroups>
258 <push state="action"/>
259 </rule>
260 <rule pattern="(scope)(\s+)([A-Za-z]\w*)(\s*)(;)">
261 <bygroups>
262 <token type="Keyword"/>
263 <token type="TextWhitespace"/>
264 <token type="NameLabel"/>
265 <token type="TextWhitespace"/>
266 <token type="Punctuation"/>
267 </bygroups>
268 </rule>
269 <rule pattern="(@[A-Za-z]\w*)(\s*)(\{)">
270 <bygroups>
271 <token type="NameLabel"/>
272 <token type="TextWhitespace"/>
273 <token type="Punctuation"/>
274 </bygroups>
275 <push state="action"/>
276 </rule>
277 <rule pattern=":">
278 <token type="Punctuation"/>
279 <pop depth="1"/>
280 </rule>
281 </state>
282 <state name="action">
283 <rule pattern="([^${}\&#39;&#34;/\\]+|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|\\(?!%)|/)+">
284 <token type="Other"/>
285 </rule>
286 <rule pattern="(\\)(%)">
287 <bygroups>
288 <token type="Punctuation"/>
289 <token type="Other"/>
290 </bygroups>
291 </rule>
292 <rule pattern="(\$[a-zA-Z]+)(\.?)(text|value)?">
293 <bygroups>
294 <token type="NameVariable"/>
295 <token type="Punctuation"/>
296 <token type="NameProperty"/>
297 </bygroups>
298 </rule>
299 <rule pattern="\{">
300 <token type="Punctuation"/>
301 <push/>
302 </rule>
303 <rule pattern="\}">
304 <token type="Punctuation"/>
305 <pop depth="1"/>
306 </rule>
307 </state>
308 <state name="comments">
309 <rule pattern="//.*$">
310 <token type="Comment"/>
311 </rule>
312 <rule pattern="/\*(.|\n)*?\*/">
313 <token type="Comment"/>
314 </rule>
315 </state>
316 </rules>
317</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml
new file mode 100644
index 0000000..7643541
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apacheconf.xml
@@ -0,0 +1,74 @@
1<lexer>
2 <config>
3 <name>ApacheConf</name>
4 <alias>apacheconf</alias>
5 <alias>aconf</alias>
6 <alias>apache</alias>
7 <filename>.htaccess</filename>
8 <filename>apache.conf</filename>
9 <filename>apache2.conf</filename>
10 <mime_type>text/x-apacheconf</mime_type>
11 <case_insensitive>true</case_insensitive>
12 </config>
13 <rules>
14 <state name="root">
15 <rule pattern="\s+">
16 <token type="Text"/>
17 </rule>
18 <rule pattern="(#.*?)$">
19 <token type="Comment"/>
20 </rule>
21 <rule pattern="(&lt;[^\s&gt;]+)(?:(\s+)(.*?))?(&gt;)">
22 <bygroups>
23 <token type="NameTag"/>
24 <token type="Text"/>
25 <token type="LiteralString"/>
26 <token type="NameTag"/>
27 </bygroups>
28 </rule>
29 <rule pattern="([a-z]\w*)(\s+)">
30 <bygroups>
31 <token type="NameBuiltin"/>
32 <token type="Text"/>
33 </bygroups>
34 <push state="value"/>
35 </rule>
36 <rule pattern="\.+">
37 <token type="Text"/>
38 </rule>
39 </state>
40 <state name="value">
41 <rule pattern="\\\n">
42 <token type="Text"/>
43 </rule>
44 <rule pattern="$">
45 <token type="Text"/>
46 <pop depth="1"/>
47 </rule>
48 <rule pattern="\\">
49 <token type="Text"/>
50 </rule>
51 <rule pattern="[^\S\n]+">
52 <token type="Text"/>
53 </rule>
54 <rule pattern="\d+\.\d+\.\d+\.\d+(?:/\d+)?">
55 <token type="LiteralNumber"/>
56 </rule>
57 <rule pattern="\d+">
58 <token type="LiteralNumber"/>
59 </rule>
60 <rule pattern="/([a-z0-9][\w./-]+)">
61 <token type="LiteralStringOther"/>
62 </rule>
63 <rule pattern="(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">
64 <token type="Keyword"/>
65 </rule>
66 <rule pattern="&#34;([^&#34;\\]*(?:\\.[^&#34;\\]*)*)&#34;">
67 <token type="LiteralStringDouble"/>
68 </rule>
69 <rule pattern="[^\s&#34;\\]+">
70 <token type="Text"/>
71 </rule>
72 </state>
73 </rules>
74</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml
new file mode 100644
index 0000000..959448c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/apl.xml
@@ -0,0 +1,59 @@
1<lexer>
2 <config>
3 <name>APL</name>
4 <alias>apl</alias>
5 <filename>*.apl</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="\s+">
10 <token type="Text"/>
11 </rule>
12 <rule pattern="[⍝#].*$">
13 <token type="CommentSingle"/>
14 </rule>
15 <rule pattern="\&#39;((\&#39;\&#39;)|[^\&#39;])*\&#39;">
16 <token type="LiteralStringSingle"/>
17 </rule>
18 <rule pattern="&#34;((&#34;&#34;)|[^&#34;])*&#34;">
19 <token type="LiteralStringDouble"/>
20 </rule>
21 <rule pattern="[⋄◇()]">
22 <token type="Punctuation"/>
23 </rule>
24 <rule pattern="[\[\];]">
25 <token type="LiteralStringRegex"/>
26 </rule>
27 <rule pattern="⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*">
28 <token type="NameFunction"/>
29 </rule>
30 <rule pattern="[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*">
31 <token type="NameVariable"/>
32 </rule>
33 <rule pattern="¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?">
34 <token type="LiteralNumber"/>
35 </rule>
36 <rule pattern="[\.\\/⌿⍀¨⍣⍨⍠⍤∘⍥@⌺⌶⍢]">
37 <token type="NameAttribute"/>
38 </rule>
39 <rule pattern="[+\-×÷⌈⌊∣|⍳?*⍟○!⌹&lt;≤=&gt;≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗⊆⍸]">
40 <token type="Operator"/>
41 </rule>
42 <rule pattern="⍬">
43 <token type="NameConstant"/>
44 </rule>
45 <rule pattern="[⎕⍞]">
46 <token type="NameVariableGlobal"/>
47 </rule>
48 <rule pattern="[←→]">
49 <token type="KeywordDeclaration"/>
50 </rule>
51 <rule pattern="[⍺⍵⍶⍹∇:]">
52 <token type="NameBuiltinPseudo"/>
53 </rule>
54 <rule pattern="[{}]">
55 <token type="KeywordType"/>
56 </rule>
57 </state>
58 </rules>
59</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml
new file mode 100644
index 0000000..1de6c67
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/applescript.xml
@@ -0,0 +1,130 @@
1<lexer>
2 <config>
3 <name>AppleScript</name>
4 <alias>applescript</alias>
5 <filename>*.applescript</filename>
6 <dot_all>true</dot_all>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\s+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="¬\n">
14 <token type="LiteralStringEscape"/>
15 </rule>
16 <rule pattern="&#39;s\s+">
17 <token type="Text"/>
18 </rule>
19 <rule pattern="(--|#).*?$">
20 <token type="Comment"/>
21 </rule>
22 <rule pattern="\(\*">
23 <token type="CommentMultiline"/>
24 <push state="comment"/>
25 </rule>
26 <rule pattern="[(){}!,.:]">
27 <token type="Punctuation"/>
28 </rule>
29 <rule pattern="(«)([^»]+)(»)">
30 <bygroups>
31 <token type="Text"/>
32 <token type="NameBuiltin"/>
33 <token type="Text"/>
34 </bygroups>
35 </rule>
36 <rule pattern="\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)">
37 <bygroups>
38 <token type="Keyword"/>
39 <token type="NameBuiltin"/>
40 </bygroups>
41 </rule>
42 <rule pattern="(-|\*|\+|&amp;|≠|&gt;=?|&lt;=?|=|≥|≤|/|÷|\^)">
43 <token type="Operator"/>
44 </rule>
45 <rule pattern="\b(and|or|is equal|equals|(is )?equal to|is not|isn&#39;t|isn&#39;t equal( to)?|is not equal( to)?|doesn&#39;t equal|does not equal|(is )?greater than|comes after|is not less than or equal( to)?|isn&#39;t less than or equal( to)?|(is )?less than|comes before|is not greater than or equal( to)?|isn&#39;t greater than or equal( to)?|(is )?greater than or equal( to)?|is not less than|isn&#39;t less than|does not come before|doesn&#39;t come before|(is )?less than or equal( to)?|is not greater than|isn&#39;t greater than|does not come after|doesn&#39;t come after|starts? with|begins? with|ends? with|contains?|does not contain|doesn&#39;t contain|is in|is contained by|is not in|is not contained by|isn&#39;t contained by|div|mod|not|(a )?(ref( to)?|reference to)|is|does)\b">
46 <token type="OperatorWord"/>
47 </rule>
48 <rule pattern="^(\s*(?:on|end)\s+)(zoomed|write to file|will zoom|will show|will select tab view item|will resize( sub views)?|will resign active|will quit|will pop up|will open|will move|will miniaturize|will hide|will finish launching|will display outline cell|will display item cell|will display cell|will display browser cell|will dismiss|will close|will become active|was miniaturized|was hidden|update toolbar item|update parameters|update menu item|shown|should zoom|should selection change|should select tab view item|should select row|should select item|should select column|should quit( after last window closed)?|should open( untitled)?|should expand item|should end editing|should collapse item|should close|should begin editing|selection changing|selection changed|selected tab view item|scroll wheel|rows changed|right mouse up|right mouse dragged|right mouse down|resized( sub views)?|resigned main|resigned key|resigned active|read from file|prepare table drop|prepare table drag|prepare outline drop|prepare outline drag|prepare drop|plugin loaded|parameters updated|panel ended|opened|open untitled|number of rows|number of items|number of browser rows|moved|mouse up|mouse moved|mouse exited|mouse entered|mouse dragged|mouse down|miniaturized|load data representation|launched|keyboard up|keyboard down|items changed|item value changed|item value|item expandable|idle|exposed|end editing|drop|drag( (entered|exited|updated))?|double clicked|document nib name|dialog ended|deminiaturized|data representation|conclude drop|column resized|column moved|column clicked|closed|clicked toolbar item|clicked|choose menu item|child of item|changed|change item value|change cell value|cell value changed|cell value|bounds changed|begin editing|became main|became key|awake from nib|alert ended|activated|action|accept table drop|accept outline drop)">
49 <bygroups>
50 <token type="Keyword"/>
51 <token type="NameFunction"/>
52 </bygroups>
53 </rule>
54 <rule pattern="^(\s*)(in|on|script|to)(\s+)">
55 <bygroups>
56 <token type="Text"/>
57 <token type="Keyword"/>
58 <token type="Text"/>
59 </bygroups>
60 </rule>
61 <rule pattern="\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">
62 <bygroups>
63 <token type="Keyword"/>
64 <token type="NameClass"/>
65 </bygroups>
66 </rule>
67 <rule pattern="\b(AppleScript|current application|false|linefeed|missing value|pi|quote|result|return|space|tab|text item delimiters|true|version)\b">
68 <token type="NameConstant"/>
69 </rule>
70 <rule pattern="\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">
71 <token type="NameBuiltin"/>
72 </rule>
73 <rule pattern="\b(considering|else|error|exit|from|if|ignoring|in|repeat|tell|then|times|to|try|until|using terms from|while|with|with timeout( of)?|with transaction|by|continue|end|its?|me|my|return|of|as)\b">
74 <token type="Keyword"/>
75 </rule>
76 <rule pattern="\b(global|local|prop(erty)?|set|get)\b">
77 <token type="Keyword"/>
78 </rule>
79 <rule pattern="\b(but|put|returning|the)\b">
80 <token type="NameBuiltin"/>
81 </rule>
82 <rule pattern="\b(attachment|attribute run|character|day|month|paragraph|word|year)s?\b">
83 <token type="NameBuiltin"/>
84 </rule>
85 <rule pattern="\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">
86 <token type="NameBuiltin"/>
87 </rule>
88 <rule pattern="\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">
89 <token type="NameAttribute"/>
90 </rule>
91 <rule pattern="\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">
92 <token type="NameBuiltin"/>
93 </rule>
94 <rule pattern="\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">
95 <token type="NameBuiltin"/>
96 </rule>
97 <rule pattern="\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">
98 <token type="NameBuiltin"/>
99 </rule>
100 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
101 <token type="LiteralStringDouble"/>
102 </rule>
103 <rule pattern="\b([a-zA-Z]\w*)\b">
104 <token type="NameVariable"/>
105 </rule>
106 <rule pattern="[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?">
107 <token type="LiteralNumberFloat"/>
108 </rule>
109 <rule pattern="[-+]?\d+">
110 <token type="LiteralNumberInteger"/>
111 </rule>
112 </state>
113 <state name="comment">
114 <rule pattern="\(\*">
115 <token type="CommentMultiline"/>
116 <push/>
117 </rule>
118 <rule pattern="\*\)">
119 <token type="CommentMultiline"/>
120 <pop depth="1"/>
121 </rule>
122 <rule pattern="[^*(]+">
123 <token type="CommentMultiline"/>
124 </rule>
125 <rule pattern="[*(]">
126 <token type="CommentMultiline"/>
127 </rule>
128 </state>
129 </rules>
130</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml
new file mode 100644
index 0000000..00399c2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/arduino.xml
@@ -0,0 +1,309 @@
1<lexer>
2 <config>
3 <name>Arduino</name>
4 <alias>arduino</alias>
5 <filename>*.ino</filename>
6 <mime_type>text/x-arduino</mime_type>
7 <ensure_nl>true</ensure_nl>
8 </config>
9 <rules>
10 <state name="whitespace">
11 <rule pattern="^#if\s+0">
12 <token type="CommentPreproc"/>
13 <push state="if0"/>
14 </rule>
15 <rule pattern="^#">
16 <token type="CommentPreproc"/>
17 <push state="macro"/>
18 </rule>
19 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
20 <bygroups>
21 <usingself state="root"/>
22 <token type="CommentPreproc"/>
23 </bygroups>
24 <push state="if0"/>
25 </rule>
26 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
27 <bygroups>
28 <usingself state="root"/>
29 <token type="CommentPreproc"/>
30 </bygroups>
31 <push state="macro"/>
32 </rule>
33 <rule pattern="\n">
34 <token type="Text"/>
35 </rule>
36 <rule pattern="\s+">
37 <token type="Text"/>
38 </rule>
39 <rule pattern="\\\n">
40 <token type="Text"/>
41 </rule>
42 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
43 <token type="CommentSingle"/>
44 </rule>
45 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
46 <token type="CommentMultiline"/>
47 </rule>
48 <rule pattern="/(\\\n)?[*][\w\W]*">
49 <token type="CommentMultiline"/>
50 </rule>
51 </state>
52 <state name="string">
53 <rule pattern="&#34;">
54 <token type="LiteralString"/>
55 <pop depth="1"/>
56 </rule>
57 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
58 <token type="LiteralStringEscape"/>
59 </rule>
60 <rule pattern="[^\\&#34;\n]+">
61 <token type="LiteralString"/>
62 </rule>
63 <rule pattern="\\\n">
64 <token type="LiteralString"/>
65 </rule>
66 <rule pattern="\\">
67 <token type="LiteralString"/>
68 </rule>
69 </state>
70 <state name="macro">
71 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
72 <bygroups>
73 <token type="CommentPreproc"/>
74 <token type="Text"/>
75 <token type="CommentPreprocFile"/>
76 </bygroups>
77 </rule>
78 <rule pattern="[^/\n]+">
79 <token type="CommentPreproc"/>
80 </rule>
81 <rule pattern="/[*](.|\n)*?[*]/">
82 <token type="CommentMultiline"/>
83 </rule>
84 <rule pattern="//.*?\n">
85 <token type="CommentSingle"/>
86 <pop depth="1"/>
87 </rule>
88 <rule pattern="/">
89 <token type="CommentPreproc"/>
90 </rule>
91 <rule pattern="(?&lt;=\\)\n">
92 <token type="CommentPreproc"/>
93 </rule>
94 <rule pattern="\n">
95 <token type="CommentPreproc"/>
96 <pop depth="1"/>
97 </rule>
98 </state>
99 <state name="statements">
100 <rule pattern="(reinterpret_cast|static_assert|dynamic_cast|thread_local|static_cast|const_cast|protected|constexpr|namespace|restrict|noexcept|override|operator|typename|template|explicit|decltype|nullptr|private|alignof|virtual|mutable|alignas|typeid|friend|throws|export|public|delete|final|using|throw|catch|this|try|new)\b">
101 <token type="Keyword"/>
102 </rule>
103 <rule pattern="char(16_t|32_t)\b">
104 <token type="KeywordType"/>
105 </rule>
106 <rule pattern="(class)\b">
107 <bygroups>
108 <token type="Keyword"/>
109 <token type="Text"/>
110 </bygroups>
111 <push state="classname"/>
112 </rule>
113 <rule pattern="(R)(&#34;)([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(&#34;)">
114 <bygroups>
115 <token type="LiteralStringAffix"/>
116 <token type="LiteralString"/>
117 <token type="LiteralStringDelimiter"/>
118 <token type="LiteralStringDelimiter"/>
119 <token type="LiteralString"/>
120 <token type="LiteralStringDelimiter"/>
121 <token type="LiteralString"/>
122 </bygroups>
123 </rule>
124 <rule pattern="(u8|u|U)(&#34;)">
125 <bygroups>
126 <token type="LiteralStringAffix"/>
127 <token type="LiteralString"/>
128 </bygroups>
129 <push state="string"/>
130 </rule>
131 <rule pattern="(L?)(&#34;)">
132 <bygroups>
133 <token type="LiteralStringAffix"/>
134 <token type="LiteralString"/>
135 </bygroups>
136 <push state="string"/>
137 </rule>
138 <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
139 <bygroups>
140 <token type="LiteralStringAffix"/>
141 <token type="LiteralStringChar"/>
142 <token type="LiteralStringChar"/>
143 <token type="LiteralStringChar"/>
144 </bygroups>
145 </rule>
146 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
147 <token type="LiteralNumberFloat"/>
148 </rule>
149 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
150 <token type="LiteralNumberFloat"/>
151 </rule>
152 <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
153 <token type="LiteralNumberHex"/>
154 </rule>
155 <rule pattern="0[0-7]+[LlUu]*">
156 <token type="LiteralNumberOct"/>
157 </rule>
158 <rule pattern="\d+[LlUu]*">
159 <token type="LiteralNumberInteger"/>
160 </rule>
161 <rule pattern="\*/">
162 <token type="Error"/>
163 </rule>
164 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
165 <token type="Operator"/>
166 </rule>
167 <rule pattern="[()\[\],.]">
168 <token type="Punctuation"/>
169 </rule>
170 <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
171 <token type="Keyword"/>
172 </rule>
173 <rule pattern="(_Bool|_Complex|_Imaginary|array|atomic_bool|atomic_char|atomic_int|atomic_llong|atomic_long|atomic_schar|atomic_short|atomic_uchar|atomic_uint|atomic_ullong|atomic_ulong|atomic_ushort|auto|bool|boolean|BooleanVariables|Byte|byte|Char|char|char16_t|char32_t|class|complex|Const|const|const_cast|delete|double|dynamic_cast|enum|explicit|extern|Float|float|friend|inline|Int|int|int16_t|int32_t|int64_t|int8_t|Long|long|new|NULL|null|operator|private|PROGMEM|protected|public|register|reinterpret_cast|short|signed|sizeof|Static|static|static_cast|String|struct|typedef|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|virtual|Void|void|Volatile|volatile|word)\b">
174 <token type="KeywordType"/>
175 </rule>
176 <rule pattern="(and|final|If|Loop|loop|not|or|override|setup|Setup|throw|try|xor)\b">
177 <token type="Keyword"/>
178 </rule>
179 <rule pattern="(ANALOG_MESSAGE|BIN|CHANGE|DEC|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FALLING|FIRMATA_STRING|HALF_PI|HEX|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL1V1|INTERNAL2V56|INTERNAL2V56|LED_BUILTIN|LED_BUILTIN_RX|LED_BUILTIN_TX|LOW|LSBFIRST|MSBFIRST|OCT|OUTPUT|PI|REPORT_ANALOG|REPORT_DIGITAL|RISING|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET|TWO_PI)\b">
180 <token type="KeywordConstant"/>
181 </rule>
182 <rule pattern="(boolean|const|byte|word|string|String|array)\b">
183 <token type="NameVariable"/>
184 </rule>
185 <rule pattern="(Keyboard|KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD)\b">
186 <token type="NameClass"/>
187 </rule>
188 <rule pattern="(abs|Abs|accept|ACos|acos|acosf|addParameter|analogRead|AnalogRead|analogReadResolution|AnalogReadResolution|analogReference|AnalogReference|analogWrite|AnalogWrite|analogWriteResolution|AnalogWriteResolution|answerCall|asin|ASin|asinf|atan|ATan|atan2|ATan2|atan2f|atanf|attach|attached|attachGPRS|attachInterrupt|AttachInterrupt|autoscroll|available|availableForWrite|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|Bit|BitClear|bitClear|bitRead|BitRead|bitSet|BitSet|BitWrite|bitWrite|blink|blinkVersion|BSSID|buffer|byte|cbrt|cbrtf|Ceil|ceil|ceilf|changePIN|char|charAt|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compareTo|compassRead|concat|config|connect|connected|constrain|Constrain|copysign|copysignf|cos|Cos|cosf|cosh|coshf|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|degrees|Delay|delay|DelayMicroseconds|delayMicroseconds|detach|DetachInterrupt|detachInterrupt|DigitalPinToInterrupt|digitalPinToInterrupt|DigitalRead|digitalRead|DigitalWrite|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endsWith|endTransmission|endWrite|equals|equalsIgnoreCase|exists|exitValue|Exp|exp|expf|fabs|fabsf|fdim|fdimf|fill|find|findUntil|float|floor|Floor|floorf|flush|fma|fmaf|fmax|fmaxf|fmin|fminf|fmod|fmodf|gatewayIP|get|getAsynchronously|getBand|getButton|getBytes|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|HighByte|home|hypot|hypotf|image|indexOf|int|interrupts|IPAddress|IRread|isActionDone|isAlpha|isAlphaNumeric|isAscii|isControl|isDigit|isDirectory|isfinite|isGraph|isHexadecimalDigit|isinf|isListening|isLowerCase|isnan|isPIN|isPressed|isPrintable|isPunct|isSpace|isUpperCase|isValid|isWhitespace|keyboardRead|keyPressed|keyReleased|knobRead|lastIndexOf|ldexp|ldexpf|leftToRight|length|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|log|Log|log10|log10f|logf|long|lowByte|LowByte|lrint|lrintf|lround|lroundf|macAddress|maintain|map|Map|Max|max|messageAvailable|Micros|micros|millis|Millis|Min|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|NoInterrupts|noListenOnLocalhost|noStroke|noTone|NoTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|PinMode|pinMode|playFile|playMelody|point|pointTo|position|Pow|pow|powf|prepare|press|print|printFirmwareVersion|println|printVersion|process|processInput|PulseIn|pulseIn|pulseInLong|PulseInLong|put|radians|random|Random|randomSeed|RandomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|replace|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|round|roundf|RSSI|run|runAsynchronously|running|runShellCommand|runShellCommandAsynchronously|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|Serial_Available|Serial_Begin|Serial_End|Serial_Flush|Serial_Peek|Serial_Print|Serial_Println|Serial_Read|serialEvent|setBand|setBitOrder|setCharAt|setClockDivider|setCursor|setDataMode|setDNS|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|ShiftIn|shiftIn|ShiftOut|shiftOut|shutdown|signbit|sin|Sin|sinf|sinh|sinhf|size|sizeof|Sq|sq|Sqrt|sqrt|sqrtf|SSID|startLoop|startsWith|step|stop|stroke|subnetMask|substring|switchPIN|tan|Tan|tanf|tanh|tanhf|tempoWrite|text|toCharArray|toInt|toLowerCase|tone|Tone|toUpperCase|transfer|trim|trunc|truncf|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|WiFiServer|word|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRed|writeRGB|yield|Yield)\b">
189 <token type="NameFunction"/>
190 </rule>
191 <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
192 <token type="KeywordReserved"/>
193 </rule>
194 <rule pattern="(__m(128i|128d|128|64))\b">
195 <token type="KeywordReserved"/>
196 </rule>
197 <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
198 <token type="KeywordReserved"/>
199 </rule>
200 <rule pattern="(true|false|NULL)\b">
201 <token type="NameBuiltin"/>
202 </rule>
203 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
204 <bygroups>
205 <token type="NameLabel"/>
206 <token type="Text"/>
207 <token type="Punctuation"/>
208 </bygroups>
209 </rule>
210 <rule pattern="[a-zA-Z_]\w*">
211 <token type="Name"/>
212 </rule>
213 </state>
214 <state name="function">
215 <rule>
216 <include state="whitespace"/>
217 </rule>
218 <rule>
219 <include state="statements"/>
220 </rule>
221 <rule pattern=";">
222 <token type="Punctuation"/>
223 </rule>
224 <rule pattern="\{">
225 <token type="Punctuation"/>
226 <push/>
227 </rule>
228 <rule pattern="\}">
229 <token type="Punctuation"/>
230 <pop depth="1"/>
231 </rule>
232 </state>
233 <state name="if0">
234 <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
235 <token type="CommentPreproc"/>
236 <push/>
237 </rule>
238 <rule pattern="^\s*#el(?:se|if).*\n">
239 <token type="CommentPreproc"/>
240 <pop depth="1"/>
241 </rule>
242 <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
243 <token type="CommentPreproc"/>
244 <pop depth="1"/>
245 </rule>
246 <rule pattern=".*?\n">
247 <token type="Comment"/>
248 </rule>
249 </state>
250 <state name="classname">
251 <rule pattern="[a-zA-Z_]\w*">
252 <token type="NameClass"/>
253 <pop depth="1"/>
254 </rule>
255 <rule pattern="\s*(?=&gt;)">
256 <token type="Text"/>
257 <pop depth="1"/>
258 </rule>
259 </state>
260 <state name="statement">
261 <rule>
262 <include state="whitespace"/>
263 </rule>
264 <rule>
265 <include state="statements"/>
266 </rule>
267 <rule pattern="[{}]">
268 <token type="Punctuation"/>
269 </rule>
270 <rule pattern=";">
271 <token type="Punctuation"/>
272 <pop depth="1"/>
273 </rule>
274 </state>
275 <state name="root">
276 <rule>
277 <include state="whitespace"/>
278 </rule>
279 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
280 <bygroups>
281 <usingself state="root"/>
282 <token type="NameFunction"/>
283 <usingself state="root"/>
284 <usingself state="root"/>
285 <token type="Punctuation"/>
286 </bygroups>
287 <push state="function"/>
288 </rule>
289 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
290 <bygroups>
291 <usingself state="root"/>
292 <token type="NameFunction"/>
293 <usingself state="root"/>
294 <usingself state="root"/>
295 <token type="Punctuation"/>
296 </bygroups>
297 </rule>
298 <rule>
299 <push state="statement"/>
300 </rule>
301 <rule pattern="__(multiple_inheritance|virtual_inheritance|single_inheritance|interface|uuidof|super|event)\b">
302 <token type="KeywordReserved"/>
303 </rule>
304 <rule pattern="__(offload|blockingoffload|outer)\b">
305 <token type="KeywordPseudo"/>
306 </rule>
307 </state>
308 </rules>
309</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml
new file mode 100644
index 0000000..e5966cf
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/armasm.xml
@@ -0,0 +1,126 @@
1<lexer>
2 <config>
3 <name>ArmAsm</name>
4 <alias>armasm</alias>
5 <filename>*.s</filename>
6 <filename>*.S</filename>
7 <mime_type>text/x-armasm</mime_type>
8 <mime_type>text/x-asm</mime_type>
9 <ensure_nl>true</ensure_nl>
10 </config>
11 <rules>
12 <state name="root">
13 <rule>
14 <include state="commentsandwhitespace"/>
15 </rule>
16 <rule pattern="(\.\w+)([ \t]+\w+\s+?)?">
17 <bygroups>
18 <token type="KeywordNamespace"/>
19 <token type="NameLabel"/>
20 </bygroups>
21 </rule>
22 <rule pattern="(\w+)(:)(\s+\.\w+\s+)">
23 <bygroups>
24 <token type="NameLabel"/>
25 <token type="Punctuation"/>
26 <token type="KeywordNamespace"/>
27 </bygroups>
28 <push state="literal"/>
29 </rule>
30 <rule pattern="(\w+)(:)">
31 <bygroups>
32 <token type="NameLabel"/>
33 <token type="Punctuation"/>
34 </bygroups>
35 </rule>
36 <rule pattern="svc\s+\w+">
37 <token type="NameNamespace"/>
38 </rule>
39 <rule pattern="[a-zA-Z]+">
40 <token type="Text"/>
41 <push state="opcode"/>
42 </rule>
43 </state>
44 <state name="commentsandwhitespace">
45 <rule pattern="\s+">
46 <token type="Text"/>
47 </rule>
48 <rule pattern="[@;].*?\n">
49 <token type="CommentSingle"/>
50 </rule>
51 <rule pattern="/\*.*?\*/">
52 <token type="CommentMultiline"/>
53 </rule>
54 </state>
55 <state name="literal">
56 <rule pattern="0b[01]+">
57 <token type="LiteralNumberBin"/>
58 <pop depth="1"/>
59 </rule>
60 <rule pattern="0x\w{1,8}">
61 <token type="LiteralNumberHex"/>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern="0\d+">
65 <token type="LiteralNumberOct"/>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern="\d+?\.\d+?">
69 <token type="LiteralNumberFloat"/>
70 <pop depth="1"/>
71 </rule>
72 <rule pattern="\d+">
73 <token type="LiteralNumberInteger"/>
74 <pop depth="1"/>
75 </rule>
76 <rule pattern="(&#34;)(.+)(&#34;)">
77 <bygroups>
78 <token type="Punctuation"/>
79 <token type="LiteralStringDouble"/>
80 <token type="Punctuation"/>
81 </bygroups>
82 <pop depth="1"/>
83 </rule>
84 <rule pattern="(&#39;)(.{1}|\\.{1})(&#39;)">
85 <bygroups>
86 <token type="Punctuation"/>
87 <token type="LiteralStringChar"/>
88 <token type="Punctuation"/>
89 </bygroups>
90 <pop depth="1"/>
91 </rule>
92 </state>
93 <state name="opcode">
94 <rule pattern="\n">
95 <token type="Text"/>
96 <pop depth="1"/>
97 </rule>
98 <rule pattern="(@|;).*\n">
99 <token type="CommentSingle"/>
100 <pop depth="1"/>
101 </rule>
102 <rule pattern="(\s+|,)">
103 <token type="Text"/>
104 </rule>
105 <rule pattern="[rapcfxwbhsdqv]\d{1,2}">
106 <token type="NameClass"/>
107 </rule>
108 <rule pattern="=0x\w+">
109 <bygroups>
110 <token type="Text"/>
111 <token type="NameLabel"/>
112 </bygroups>
113 </rule>
114 <rule pattern="(=)(\w+)">
115 <bygroups>
116 <token type="Text"/>
117 <token type="NameLabel"/>
118 </bygroups>
119 </rule>
120 <rule pattern="#">
121 <token type="Text"/>
122 <push state="literal"/>
123 </rule>
124 </state>
125 </rules>
126</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml
new file mode 100644
index 0000000..07476ff
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/awk.xml
@@ -0,0 +1,95 @@
1<lexer>
2 <config>
3 <name>Awk</name>
4 <alias>awk</alias>
5 <alias>gawk</alias>
6 <alias>mawk</alias>
7 <alias>nawk</alias>
8 <filename>*.awk</filename>
9 <mime_type>application/x-awk</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="^(?=\s|/)">
14 <token type="Text"/>
15 <push state="slashstartsregex"/>
16 </rule>
17 <rule>
18 <include state="commentsandwhitespace"/>
19 </rule>
20 <rule pattern="\+\+|--|\|\||&amp;&amp;|in\b|\$|!?~|\|&amp;|(\*\*|[-&lt;&gt;+*%\^/!=|])=?">
21 <token type="Operator"/>
22 <push state="slashstartsregex"/>
23 </rule>
24 <rule pattern="[{(\[;,]">
25 <token type="Punctuation"/>
26 <push state="slashstartsregex"/>
27 </rule>
28 <rule pattern="[})\].]">
29 <token type="Punctuation"/>
30 </rule>
31 <rule pattern="(break|continue|do|while|exit|for|if|else|return|switch|case|default)\b">
32 <token type="Keyword"/>
33 <push state="slashstartsregex"/>
34 </rule>
35 <rule pattern="function\b">
36 <token type="KeywordDeclaration"/>
37 <push state="slashstartsregex"/>
38 </rule>
39 <rule pattern="(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|length|match|split|patsplit|sprintf|sub|substr|tolower|toupper|close|fflush|getline|next(file)|print|printf|strftime|systime|mktime|delete|system|strtonum|and|compl|lshift|or|rshift|asorti?|isarray|bindtextdomain|dcn?gettext|@(include|load|namespace))\b">
40 <token type="KeywordReserved"/>
41 </rule>
42 <rule pattern="(ARGC|ARGIND|ARGV|BEGIN(FILE)?|BINMODE|CONVFMT|ENVIRON|END(FILE)?|ERRNO|FIELDWIDTHS|FILENAME|FNR|FPAT|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS|PROCINFO|RLENGTH|RS|RSTART|RT|SUBSEP|TEXTDOMAIN)\b">
43 <token type="NameBuiltin"/>
44 </rule>
45 <rule pattern="[@$a-zA-Z_]\w*">
46 <token type="NameOther"/>
47 </rule>
48 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
49 <token type="LiteralNumberFloat"/>
50 </rule>
51 <rule pattern="0x[0-9a-fA-F]+">
52 <token type="LiteralNumberHex"/>
53 </rule>
54 <rule pattern="[0-9]+">
55 <token type="LiteralNumberInteger"/>
56 </rule>
57 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
58 <token type="LiteralStringDouble"/>
59 </rule>
60 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
61 <token type="LiteralStringSingle"/>
62 </rule>
63 </state>
64 <state name="commentsandwhitespace">
65 <rule pattern="\s+">
66 <token type="Text"/>
67 </rule>
68 <rule pattern="#.*$">
69 <token type="CommentSingle"/>
70 </rule>
71 </state>
72 <state name="slashstartsregex">
73 <rule>
74 <include state="commentsandwhitespace"/>
75 </rule>
76 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/\B">
77 <token type="LiteralStringRegex"/>
78 <pop depth="1"/>
79 </rule>
80 <rule pattern="(?=/)">
81 <token type="Text"/>
82 <push state="#pop" state="badregex"/>
83 </rule>
84 <rule>
85 <pop depth="1"/>
86 </rule>
87 </state>
88 <state name="badregex">
89 <rule pattern="\n">
90 <token type="Text"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 </rules>
95</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml
new file mode 100644
index 0000000..d13c123
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ballerina.xml
@@ -0,0 +1,97 @@
1<lexer>
2 <config>
3 <name>Ballerina</name>
4 <alias>ballerina</alias>
5 <filename>*.bal</filename>
6 <mime_type>text/x-ballerina</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="[^\S\n]+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="//.*?\n">
15 <token type="CommentSingle"/>
16 </rule>
17 <rule pattern="/\*.*?\*/">
18 <token type="CommentMultiline"/>
19 </rule>
20 <rule pattern="(break|catch|continue|done|else|finally|foreach|forever|fork|if|lock|match|return|throw|transaction|try|while)\b">
21 <token type="Keyword"/>
22 </rule>
23 <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
24 <bygroups>
25 <usingself state="root"/>
26 <token type="NameFunction"/>
27 <token type="Text"/>
28 <token type="Operator"/>
29 </bygroups>
30 </rule>
31 <rule pattern="@[^\W\d][\w.]*">
32 <token type="NameDecorator"/>
33 </rule>
34 <rule pattern="(annotation|bind|but|endpoint|error|function|object|private|public|returns|service|type|var|with|worker)\b">
35 <token type="KeywordDeclaration"/>
36 </rule>
37 <rule pattern="(boolean|byte|decimal|float|int|json|map|nil|record|string|table|xml)\b">
38 <token type="KeywordType"/>
39 </rule>
40 <rule pattern="(true|false|null)\b">
41 <token type="KeywordConstant"/>
42 </rule>
43 <rule pattern="(import)(\s+)">
44 <bygroups>
45 <token type="KeywordNamespace"/>
46 <token type="Text"/>
47 </bygroups>
48 <push state="import"/>
49 </rule>
50 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
51 <token type="LiteralString"/>
52 </rule>
53 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
54 <token type="LiteralStringChar"/>
55 </rule>
56 <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
57 <bygroups>
58 <token type="Operator"/>
59 <token type="NameAttribute"/>
60 </bygroups>
61 </rule>
62 <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
63 <token type="NameLabel"/>
64 </rule>
65 <rule pattern="([^\W\d]|\$)[\w$]*">
66 <token type="Name"/>
67 </rule>
68 <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?">
69 <token type="LiteralNumberFloat"/>
70 </rule>
71 <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
72 <token type="LiteralNumberHex"/>
73 </rule>
74 <rule pattern="0[bB][01][01_]*[lL]?">
75 <token type="LiteralNumberBin"/>
76 </rule>
77 <rule pattern="0[0-7_]+[lL]?">
78 <token type="LiteralNumberOct"/>
79 </rule>
80 <rule pattern="0|[1-9][0-9_]*[lL]?">
81 <token type="LiteralNumberInteger"/>
82 </rule>
83 <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
84 <token type="Operator"/>
85 </rule>
86 <rule pattern="\n">
87 <token type="Text"/>
88 </rule>
89 </state>
90 <state name="import">
91 <rule pattern="[\w.]+">
92 <token type="NameNamespace"/>
93 <pop depth="1"/>
94 </rule>
95 </state>
96 </rules>
97</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml
new file mode 100644
index 0000000..10c8dbe
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bash.xml
@@ -0,0 +1,217 @@
1<lexer>
2 <config>
3 <name>Bash</name>
4 <alias>bash</alias>
5 <alias>sh</alias>
6 <alias>ksh</alias>
7 <alias>zsh</alias>
8 <alias>shell</alias>
9 <filename>*.sh</filename>
10 <filename>*.ksh</filename>
11 <filename>*.bash</filename>
12 <filename>*.ebuild</filename>
13 <filename>*.eclass</filename>
14 <filename>.env</filename>
15 <filename>*.env</filename>
16 <filename>*.exheres-0</filename>
17 <filename>*.exlib</filename>
18 <filename>*.zsh</filename>
19 <filename>*.zshrc</filename>
20 <filename>.bashrc</filename>
21 <filename>bashrc</filename>
22 <filename>.bash_*</filename>
23 <filename>bash_*</filename>
24 <filename>zshrc</filename>
25 <filename>.zshrc</filename>
26 <filename>PKGBUILD</filename>
27 <mime_type>application/x-sh</mime_type>
28 <mime_type>application/x-shellscript</mime_type>
29 </config>
30 <rules>
31 <state name="data">
32 <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
33 <token type="LiteralStringDouble"/>
34 </rule>
35 <rule pattern="&#34;">
36 <token type="LiteralStringDouble"/>
37 <push state="string"/>
38 </rule>
39 <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
40 <token type="LiteralStringSingle"/>
41 </rule>
42 <rule pattern="(?s)&#39;.*?&#39;">
43 <token type="LiteralStringSingle"/>
44 </rule>
45 <rule pattern=";">
46 <token type="Punctuation"/>
47 </rule>
48 <rule pattern="&amp;">
49 <token type="Punctuation"/>
50 </rule>
51 <rule pattern="\|">
52 <token type="Punctuation"/>
53 </rule>
54 <rule pattern="\s+">
55 <token type="Text"/>
56 </rule>
57 <rule pattern="\d+(?= |$)">
58 <token type="LiteralNumber"/>
59 </rule>
60 <rule pattern="[^=\s\[\]{}()$&#34;\&#39;`\\&lt;&amp;|;]+">
61 <token type="Text"/>
62 </rule>
63 <rule pattern="&lt;">
64 <token type="Text"/>
65 </rule>
66 </state>
67 <state name="string">
68 <rule pattern="&#34;">
69 <token type="LiteralStringDouble"/>
70 <pop depth="1"/>
71 </rule>
72 <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
73 <token type="LiteralStringDouble"/>
74 </rule>
75 <rule>
76 <include state="interp"/>
77 </rule>
78 </state>
79 <state name="interp">
80 <rule pattern="\$\(\(">
81 <token type="Keyword"/>
82 <push state="math"/>
83 </rule>
84 <rule pattern="\$\(">
85 <token type="Keyword"/>
86 <push state="paren"/>
87 </rule>
88 <rule pattern="\$\{#?">
89 <token type="LiteralStringInterpol"/>
90 <push state="curly"/>
91 </rule>
92 <rule pattern="\$[a-zA-Z_]\w*">
93 <token type="NameVariable"/>
94 </rule>
95 <rule pattern="\$(?:\d+|[#$?!_*@-])">
96 <token type="NameVariable"/>
97 </rule>
98 <rule pattern="\$">
99 <token type="Text"/>
100 </rule>
101 </state>
102 <state name="paren">
103 <rule pattern="\)">
104 <token type="Keyword"/>
105 <pop depth="1"/>
106 </rule>
107 <rule>
108 <include state="root"/>
109 </rule>
110 </state>
111 <state name="math">
112 <rule pattern="\)\)">
113 <token type="Keyword"/>
114 <pop depth="1"/>
115 </rule>
116 <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
117 <token type="Operator"/>
118 </rule>
119 <rule pattern="\d+#\d+">
120 <token type="LiteralNumber"/>
121 </rule>
122 <rule pattern="\d+#(?! )">
123 <token type="LiteralNumber"/>
124 </rule>
125 <rule pattern="\d+">
126 <token type="LiteralNumber"/>
127 </rule>
128 <rule>
129 <include state="root"/>
130 </rule>
131 </state>
132 <state name="backticks">
133 <rule pattern="`">
134 <token type="LiteralStringBacktick"/>
135 <pop depth="1"/>
136 </rule>
137 <rule>
138 <include state="root"/>
139 </rule>
140 </state>
141 <state name="root">
142 <rule>
143 <include state="basic"/>
144 </rule>
145 <rule pattern="`">
146 <token type="LiteralStringBacktick"/>
147 <push state="backticks"/>
148 </rule>
149 <rule>
150 <include state="data"/>
151 </rule>
152 <rule>
153 <include state="interp"/>
154 </rule>
155 </state>
156 <state name="basic">
157 <rule pattern="\b(if|fi|else|while|do|done|for|then|return|function|case|select|continue|until|esac|elif)(\s*)\b">
158 <bygroups>
159 <token type="Keyword"/>
160 <token type="Text"/>
161 </bygroups>
162 </rule>
163 <rule pattern="\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)`])">
164 <token type="NameBuiltin"/>
165 </rule>
166 <rule pattern="\A#!.+\n">
167 <token type="CommentPreproc"/>
168 </rule>
169 <rule pattern="#.*(\S|$)">
170 <token type="CommentSingle"/>
171 </rule>
172 <rule pattern="\\[\w\W]">
173 <token type="LiteralStringEscape"/>
174 </rule>
175 <rule pattern="(\b\w+)(\s*)(\+?=)">
176 <bygroups>
177 <token type="NameVariable"/>
178 <token type="Text"/>
179 <token type="Operator"/>
180 </bygroups>
181 </rule>
182 <rule pattern="[\[\]{}()=]">
183 <token type="Operator"/>
184 </rule>
185 <rule pattern="&lt;&lt;&lt;">
186 <token type="Operator"/>
187 </rule>
188 <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
189 <token type="LiteralString"/>
190 </rule>
191 <rule pattern="&amp;&amp;|\|\|">
192 <token type="Operator"/>
193 </rule>
194 </state>
195 <state name="curly">
196 <rule pattern="\}">
197 <token type="LiteralStringInterpol"/>
198 <pop depth="1"/>
199 </rule>
200 <rule pattern=":-">
201 <token type="Keyword"/>
202 </rule>
203 <rule pattern="\w+">
204 <token type="NameVariable"/>
205 </rule>
206 <rule pattern="[^}:&#34;\&#39;`$\\]+">
207 <token type="Punctuation"/>
208 </rule>
209 <rule pattern=":">
210 <token type="Punctuation"/>
211 </rule>
212 <rule>
213 <include state="root"/>
214 </rule>
215 </state>
216 </rules>
217</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml
new file mode 100644
index 0000000..d3e0627
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/batchfile.xml
@@ -0,0 +1,660 @@
1<lexer>
2 <config>
3 <name>Batchfile</name>
4 <alias>bat</alias>
5 <alias>batch</alias>
6 <alias>dosbatch</alias>
7 <alias>winbatch</alias>
8 <filename>*.bat</filename>
9 <filename>*.cmd</filename>
10 <mime_type>application/x-dos-batch</mime_type>
11 <case_insensitive>true</case_insensitive>
12 </config>
13 <rules>
14 <state name="arithmetic">
15 <rule pattern="0[0-7]+">
16 <token type="LiteralNumberOct"/>
17 </rule>
18 <rule pattern="0x[\da-f]+">
19 <token type="LiteralNumberHex"/>
20 </rule>
21 <rule pattern="\d+">
22 <token type="LiteralNumberInteger"/>
23 </rule>
24 <rule pattern="[(),]+">
25 <token type="Punctuation"/>
26 </rule>
27 <rule pattern="([=+\-*/!~]|%|\^\^)+">
28 <token type="Operator"/>
29 </rule>
30 <rule pattern="((?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[\w\W])+">
31 <usingself state="variable"/>
32 </rule>
33 <rule pattern="(?=[\x00|&amp;])">
34 <token type="Text"/>
35 <pop depth="1"/>
36 </rule>
37 <rule>
38 <include state="follow"/>
39 </rule>
40 </state>
41 <state name="else?">
42 <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
43 <usingself state="text"/>
44 </rule>
45 <rule pattern="else(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])">
46 <token type="Keyword"/>
47 <pop depth="1"/>
48 </rule>
49 <rule>
50 <pop depth="1"/>
51 </rule>
52 </state>
53 <state name="sqstring">
54 <rule>
55 <include state="variable-or-escape"/>
56 </rule>
57 <rule pattern="[^%]+|%">
58 <token type="LiteralStringSingle"/>
59 </rule>
60 </state>
61 <state name="root">
62 <rule pattern="\)((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*)">
63 <token type="CommentSingle"/>
64 </rule>
65 <rule pattern="(?=((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))">
66 <token type="Text"/>
67 <push state="follow"/>
68 </rule>
69 <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
70 <usingself state="text"/>
71 </rule>
72 <rule>
73 <include state="redirect"/>
74 </rule>
75 <rule pattern="[\n\x1a]+">
76 <token type="Text"/>
77 </rule>
78 <rule pattern="\(">
79 <token type="Punctuation"/>
80 <push state="root/compound"/>
81 </rule>
82 <rule pattern="@+">
83 <token type="Punctuation"/>
84 </rule>
85 <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?&lt;=m))(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)">
86 <bygroups>
87 <token type="Keyword"/>
88 <usingself state="text"/>
89 </bygroups>
90 <push state="follow"/>
91 </rule>
92 <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|])*)">
93 <bygroups>
94 <token type="Keyword"/>
95 <usingself state="text"/>
96 </bygroups>
97 <push state="follow"/>
98 </rule>
99 <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])">
100 <token type="Keyword"/>
101 <push state="follow"/>
102 </rule>
103 <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)">
104 <bygroups>
105 <token type="Keyword"/>
106 <usingself state="text"/>
107 <token type="Punctuation"/>
108 </bygroups>
109 <push state="call"/>
110 </rule>
111 <rule pattern="call(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])">
112 <token type="Keyword"/>
113 </rule>
114 <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
115 <bygroups>
116 <token type="Keyword"/>
117 <usingself state="text"/>
118 <token type="Keyword"/>
119 </bygroups>
120 <push state="for/f" state="for"/>
121 </rule>
122 <rule pattern="(for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
123 <bygroups>
124 <token type="Keyword"/>
125 <usingself state="text"/>
126 <token type="Keyword"/>
127 </bygroups>
128 <push state="for/l" state="for"/>
129 </rule>
130 <rule pattern="for(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])(?!\^)">
131 <token type="Keyword"/>
132 <push state="for2" state="for"/>
133 </rule>
134 <rule pattern="(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)">
135 <bygroups>
136 <token type="Keyword"/>
137 <usingself state="text"/>
138 <token type="Punctuation"/>
139 </bygroups>
140 <push state="label"/>
141 </rule>
142 <rule pattern="(if(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)">
143 <bygroups>
144 <token type="Keyword"/>
145 <usingself state="text"/>
146 <token type="Keyword"/>
147 <usingself state="text"/>
148 <token type="Keyword"/>
149 <usingself state="text"/>
150 </bygroups>
151 <push state="(?" state="if"/>
152 </rule>
153 <rule pattern="rem(((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)?.*|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*))">
154 <token type="CommentSingle"/>
155 <push state="follow"/>
156 </rule>
157 <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)">
158 <bygroups>
159 <token type="Keyword"/>
160 <usingself state="text"/>
161 <token type="Keyword"/>
162 </bygroups>
163 <push state="arithmetic"/>
164 </rule>
165 <rule pattern="(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|^=]|\^[\n\x1a]?[^&#34;=])+)?)((?:(?:\^[\n\x1a]?)?=)?)">
166 <bygroups>
167 <token type="Keyword"/>
168 <usingself state="text"/>
169 <token type="Keyword"/>
170 <usingself state="text"/>
171 <usingself state="variable"/>
172 <token type="Punctuation"/>
173 </bygroups>
174 <push state="follow"/>
175 </rule>
176 <rule>
177 <push state="follow"/>
178 </rule>
179 </state>
180 <state name="follow">
181 <rule pattern="((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))(.*)">
182 <bygroups>
183 <token type="Text"/>
184 <token type="Punctuation"/>
185 <token type="Text"/>
186 <token type="NameLabel"/>
187 <token type="CommentSingle"/>
188 </bygroups>
189 </rule>
190 <rule>
191 <include state="redirect"/>
192 </rule>
193 <rule pattern="(?=[\n\x1a])">
194 <token type="Text"/>
195 <pop depth="1"/>
196 </rule>
197 <rule pattern="\|\|?|&amp;&amp;?">
198 <token type="Punctuation"/>
199 <pop depth="1"/>
200 </rule>
201 <rule>
202 <include state="text"/>
203 </rule>
204 </state>
205 <state name="bqstring">
206 <rule>
207 <include state="variable-or-escape"/>
208 </rule>
209 <rule pattern="[^%]+|%">
210 <token type="LiteralStringBacktick"/>
211 </rule>
212 </state>
213 <state name="for2">
214 <rule pattern="\)">
215 <token type="Punctuation"/>
216 </rule>
217 <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(do(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))">
218 <bygroups>
219 <usingself state="text"/>
220 <token type="Keyword"/>
221 </bygroups>
222 <pop depth="1"/>
223 </rule>
224 <rule pattern="[\n\x1a]+">
225 <token type="Text"/>
226 </rule>
227 <rule>
228 <include state="follow"/>
229 </rule>
230 </state>
231 <state name="label/compound">
232 <rule pattern="(?=\))">
233 <token type="Text"/>
234 <pop depth="1"/>
235 </rule>
236 <rule pattern="((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*)?)((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[^)]|[^&#34;%^\n\x1a&amp;&lt;&gt;|)])*)">
237 <bygroups>
238 <token type="NameLabel"/>
239 <token type="CommentSingle"/>
240 </bygroups>
241 <pop depth="1"/>
242 </rule>
243 </state>
244 <state name="for">
245 <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(in)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\()">
246 <bygroups>
247 <usingself state="text"/>
248 <token type="Keyword"/>
249 <usingself state="text"/>
250 <token type="Punctuation"/>
251 </bygroups>
252 <pop depth="1"/>
253 </rule>
254 <rule>
255 <include state="follow"/>
256 </rule>
257 </state>
258 <state name="redirect/compound">
259 <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(&gt;&gt;?&amp;|&lt;&amp;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)">
260 <bygroups>
261 <token type="LiteralNumberInteger"/>
262 <token type="Punctuation"/>
263 <token type="Text"/>
264 <token type="LiteralNumberInteger"/>
265 </bygroups>
266 </rule>
267 <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])(?&lt;!\^[\n\x1a])\d)?)(&gt;&gt;?|&lt;)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0)])+))+))">
268 <bygroups>
269 <token type="LiteralNumberInteger"/>
270 <token type="Punctuation"/>
271 <usingself state="text"/>
272 </bygroups>
273 </rule>
274 </state>
275 <state name="if">
276 <rule pattern="((?:cmdextversion|errorlevel)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\d+)">
277 <bygroups>
278 <token type="Keyword"/>
279 <usingself state="text"/>
280 <token type="LiteralNumberInteger"/>
281 </bygroups>
282 <pop depth="1"/>
283 </rule>
284 <rule pattern="(defined(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
285 <bygroups>
286 <token type="Keyword"/>
287 <usingself state="text"/>
288 <usingself state="variable"/>
289 </bygroups>
290 <pop depth="1"/>
291 </rule>
292 <rule pattern="(exist(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
293 <bygroups>
294 <token type="Keyword"/>
295 <usingself state="text"/>
296 </bygroups>
297 <pop depth="1"/>
298 </rule>
299 <rule pattern="((?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
300 <bygroups>
301 <usingself state="arithmetic"/>
302 <token type="OperatorWord"/>
303 <usingself state="arithmetic"/>
304 </bygroups>
305 <pop depth="1"/>
306 </rule>
307 <rule pattern="(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)">
308 <usingself state="text"/>
309 <push state="#pop" state="if2"/>
310 </rule>
311 </state>
312 <state name="root/compound">
313 <rule pattern="\)">
314 <token type="Punctuation"/>
315 <pop depth="1"/>
316 </rule>
317 <rule pattern="(?=((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))">
318 <token type="Text"/>
319 <push state="follow/compound"/>
320 </rule>
321 <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
322 <usingself state="text"/>
323 </rule>
324 <rule>
325 <include state="redirect/compound"/>
326 </rule>
327 <rule pattern="[\n\x1a]+">
328 <token type="Text"/>
329 </rule>
330 <rule pattern="\(">
331 <token type="Punctuation"/>
332 <push state="root/compound"/>
333 </rule>
334 <rule pattern="@+">
335 <token type="Punctuation"/>
336 </rule>
337 <rule pattern="((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?&lt;=m))(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0)])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)">
338 <bygroups>
339 <token type="Keyword"/>
340 <usingself state="text"/>
341 </bygroups>
342 <push state="follow/compound"/>
343 </rule>
344 <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|)])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;%\n\x1a&amp;&lt;&gt;|)])*)">
345 <bygroups>
346 <token type="Keyword"/>
347 <usingself state="text"/>
348 </bygroups>
349 <push state="follow/compound"/>
350 </rule>
351 <rule pattern="(setlocal|endlocal|prompt|verify|rename|mklink|rmdir|shift|start|color|dpath|title|chdir|erase|pushd|ftype|break|pause|mkdir|assoc|date|path|time|popd|keys|exit|type|copy|echo|move|dir|del|ren|ver|cls|vol|rd|md|cd)(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))">
352 <token type="Keyword"/>
353 <push state="follow/compound"/>
354 </rule>
355 <rule pattern="(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)">
356 <bygroups>
357 <token type="Keyword"/>
358 <usingself state="text"/>
359 <token type="Punctuation"/>
360 </bygroups>
361 <push state="call/compound"/>
362 </rule>
363 <rule pattern="call(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))">
364 <token type="Keyword"/>
365 </rule>
366 <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
367 <bygroups>
368 <token type="Keyword"/>
369 <usingself state="text"/>
370 <token type="Keyword"/>
371 </bygroups>
372 <push state="for/f" state="for"/>
373 </rule>
374 <rule pattern="(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))">
375 <bygroups>
376 <token type="Keyword"/>
377 <usingself state="text"/>
378 <token type="Keyword"/>
379 </bygroups>
380 <push state="for/l" state="for"/>
381 </rule>
382 <rule pattern="for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a]))(?!\^)">
383 <token type="Keyword"/>
384 <push state="for2" state="for"/>
385 </rule>
386 <rule pattern="(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)">
387 <bygroups>
388 <token type="Keyword"/>
389 <usingself state="text"/>
390 <token type="Punctuation"/>
391 </bygroups>
392 <push state="label/compound"/>
393 </rule>
394 <rule pattern="(if(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)">
395 <bygroups>
396 <token type="Keyword"/>
397 <usingself state="text"/>
398 <token type="Keyword"/>
399 <usingself state="text"/>
400 <token type="Keyword"/>
401 <usingself state="text"/>
402 </bygroups>
403 <push state="(?" state="if"/>
404 </rule>
405 <rule pattern="rem(((?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&amp;&lt;&gt;|\n\x1a])))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+)?.*|(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(]))(?:(?:[^\n\x1a^)]|\^[\n\x1a]?[^)])*))">
406 <token type="CommentSingle"/>
407 <push state="follow/compound"/>
408 </rule>
409 <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)">
410 <bygroups>
411 <token type="Keyword"/>
412 <usingself state="text"/>
413 <token type="Keyword"/>
414 </bygroups>
415 <push state="arithmetic/compound"/>
416 </rule>
417 <rule pattern="(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&amp;&lt;&gt;|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|^=)]|\^[\n\x1a]?[^&#34;=])+)?)((?:(?:\^[\n\x1a]?)?=)?)">
418 <bygroups>
419 <token type="Keyword"/>
420 <usingself state="text"/>
421 <token type="Keyword"/>
422 <usingself state="text"/>
423 <usingself state="variable"/>
424 <token type="Punctuation"/>
425 </bygroups>
426 <push state="follow/compound"/>
427 </rule>
428 <rule>
429 <push state="follow/compound"/>
430 </rule>
431 </state>
432 <state name="follow/compound">
433 <rule pattern="(?=\))">
434 <token type="Text"/>
435 <pop depth="1"/>
436 </rule>
437 <rule pattern="((?:(?&lt;=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))(.*)">
438 <bygroups>
439 <token type="Text"/>
440 <token type="Punctuation"/>
441 <token type="Text"/>
442 <token type="NameLabel"/>
443 <token type="CommentSingle"/>
444 </bygroups>
445 </rule>
446 <rule>
447 <include state="redirect/compound"/>
448 </rule>
449 <rule pattern="(?=[\n\x1a])">
450 <token type="Text"/>
451 <pop depth="1"/>
452 </rule>
453 <rule pattern="\|\|?|&amp;&amp;?">
454 <token type="Punctuation"/>
455 <pop depth="1"/>
456 </rule>
457 <rule>
458 <include state="text"/>
459 </rule>
460 </state>
461 <state name="text">
462 <rule pattern="&#34;">
463 <token type="LiteralStringDouble"/>
464 <push state="string"/>
465 </rule>
466 <rule>
467 <include state="variable-or-escape"/>
468 </rule>
469 <rule pattern="[^&#34;%^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0\d)]+|.">
470 <token type="Text"/>
471 </rule>
472 </state>
473 <state name="redirect">
474 <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(&gt;&gt;?&amp;|&lt;&amp;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)">
475 <bygroups>
476 <token type="LiteralNumberInteger"/>
477 <token type="Punctuation"/>
478 <token type="Text"/>
479 <token type="LiteralNumberInteger"/>
480 </bygroups>
481 </rule>
482 <rule pattern="((?:(?&lt;=[\n\x1a\t\v\f\r ,;=\xa0])(?&lt;!\^[\n\x1a])\d)?)(&gt;&gt;?|&lt;)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
483 <bygroups>
484 <token type="LiteralNumberInteger"/>
485 <token type="Punctuation"/>
486 <usingself state="text"/>
487 </bygroups>
488 </rule>
489 </state>
490 <state name="label">
491 <rule pattern="((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*)?)((?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[\w\W]|[^&#34;%^\n\x1a&amp;&lt;&gt;|])*)">
492 <bygroups>
493 <token type="NameLabel"/>
494 <token type="CommentSingle"/>
495 </bygroups>
496 <pop depth="1"/>
497 </rule>
498 </state>
499 <state name="arithmetic/compound">
500 <rule pattern="(?=\))">
501 <token type="Text"/>
502 <pop depth="1"/>
503 </rule>
504 <rule pattern="0[0-7]+">
505 <token type="LiteralNumberOct"/>
506 </rule>
507 <rule pattern="0x[\da-f]+">
508 <token type="LiteralNumberHex"/>
509 </rule>
510 <rule pattern="\d+">
511 <token type="LiteralNumberInteger"/>
512 </rule>
513 <rule pattern="[(),]+">
514 <token type="Punctuation"/>
515 </rule>
516 <rule pattern="([=+\-*/!~]|%|\^\^)+">
517 <token type="Operator"/>
518 </rule>
519 <rule pattern="((?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[^)])+">
520 <usingself state="variable"/>
521 </rule>
522 <rule pattern="(?=[\x00|&amp;])">
523 <token type="Text"/>
524 <pop depth="1"/>
525 </rule>
526 <rule>
527 <include state="follow"/>
528 </rule>
529 </state>
530 <state name="string">
531 <rule pattern="&#34;">
532 <token type="LiteralStringDouble"/>
533 <pop depth="1"/>
534 </rule>
535 <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))">
536 <token type="NameVariable"/>
537 </rule>
538 <rule pattern="\^!|%%">
539 <token type="LiteralStringEscape"/>
540 </rule>
541 <rule pattern="[^&#34;%^\n\x1a]+|[%^]">
542 <token type="LiteralStringDouble"/>
543 </rule>
544 <rule>
545 <pop depth="1"/>
546 </rule>
547 </state>
548 <state name="variable">
549 <rule pattern="&#34;">
550 <token type="LiteralStringDouble"/>
551 <push state="string"/>
552 </rule>
553 <rule>
554 <include state="variable-or-escape"/>
555 </rule>
556 <rule pattern="[^&#34;%^\n\x1a]+|.">
557 <token type="NameVariable"/>
558 </rule>
559 </state>
560 <state name="call/compound">
561 <rule pattern="(?=\))">
562 <token type="Text"/>
563 <pop depth="1"/>
564 </rule>
565 <rule pattern="(:?)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))">
566 <bygroups>
567 <token type="Punctuation"/>
568 <token type="NameLabel"/>
569 </bygroups>
570 <pop depth="1"/>
571 </rule>
572 </state>
573 <state name="for/f">
574 <rule pattern="(&#34;)((?:(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^&#34;])*?&#34;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
575 <bygroups>
576 <token type="LiteralStringDouble"/>
577 <usingself state="string"/>
578 <token type="Text"/>
579 <token type="Punctuation"/>
580 </bygroups>
581 </rule>
582 <rule pattern="&#34;">
583 <token type="LiteralStringDouble"/>
584 <push state="#pop" state="for2" state="string"/>
585 </rule>
586 <rule pattern="(&#39;(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?&#39;)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
587 <bygroups>
588 <usingself state="sqstring"/>
589 <token type="Text"/>
590 <token type="Punctuation"/>
591 </bygroups>
592 </rule>
593 <rule pattern="(`(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?`)([\n\x1a\t\v\f\r ,;=\xa0]*)(\))">
594 <bygroups>
595 <usingself state="bqstring"/>
596 <token type="Text"/>
597 <token type="Punctuation"/>
598 </bygroups>
599 </rule>
600 <rule>
601 <include state="for2"/>
602 </rule>
603 </state>
604 <state name="for/l">
605 <rule pattern="-?\d+">
606 <token type="LiteralNumberInteger"/>
607 </rule>
608 <rule>
609 <include state="for2"/>
610 </rule>
611 </state>
612 <state name="if2">
613 <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(==)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
614 <bygroups>
615 <usingself state="text"/>
616 <token type="Operator"/>
617 <usingself state="text"/>
618 </bygroups>
619 <pop depth="1"/>
620 </rule>
621 <rule pattern="((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&amp;&lt;&gt;|]+|(?:(?:&#34;[^\n\x1a&#34;]*(?:&#34;|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^&#34;\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0])+))+))">
622 <bygroups>
623 <usingself state="text"/>
624 <token type="OperatorWord"/>
625 <usingself state="text"/>
626 </bygroups>
627 <pop depth="1"/>
628 </rule>
629 </state>
630 <state name="(?">
631 <rule pattern="(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)">
632 <usingself state="text"/>
633 </rule>
634 <rule pattern="\(">
635 <token type="Punctuation"/>
636 <push state="#pop" state="else?" state="root/compound"/>
637 </rule>
638 <rule>
639 <pop depth="1"/>
640 </rule>
641 </state>
642 <state name="call">
643 <rule pattern="(:?)((?:(?:[^\n\x1a&amp;&lt;&gt;|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))">
644 <bygroups>
645 <token type="Punctuation"/>
646 <token type="NameLabel"/>
647 </bygroups>
648 <pop depth="1"/>
649 </rule>
650 </state>
651 <state name="variable-or-escape">
652 <rule pattern="(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))">
653 <token type="NameVariable"/>
654 </rule>
655 <rule pattern="%%|\^[\n\x1a]?(\^!|[\w\W])">
656 <token type="LiteralStringEscape"/>
657 </rule>
658 </state>
659 </rules>
660</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml
new file mode 100644
index 0000000..8fde161
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bibtex.xml
@@ -0,0 +1,152 @@
1<lexer>
2 <config>
3 <name>BibTeX</name>
4 <alias>bib</alias>
5 <alias>bibtex</alias>
6 <filename>*.bib</filename>
7 <mime_type>text/x-bibtex</mime_type>
8 <case_insensitive>true</case_insensitive>
9 <not_multiline>true</not_multiline>
10 </config>
11 <rules>
12 <state name="closing-brace">
13 <rule>
14 <include state="whitespace"/>
15 </rule>
16 <rule pattern="[})]">
17 <token type="Punctuation"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="braced-string">
22 <rule pattern="\{">
23 <token type="LiteralString"/>
24 <push/>
25 </rule>
26 <rule pattern="\}">
27 <token type="LiteralString"/>
28 <pop depth="1"/>
29 </rule>
30 <rule pattern="[^\{\}]+">
31 <token type="LiteralString"/>
32 </rule>
33 </state>
34 <state name="whitespace">
35 <rule pattern="\s+">
36 <token type="Text"/>
37 </rule>
38 </state>
39 <state name="value">
40 <rule>
41 <include state="whitespace"/>
42 </rule>
43 <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
44 <token type="NameVariable"/>
45 </rule>
46 <rule pattern="&#34;">
47 <token type="LiteralString"/>
48 <push state="quoted-string"/>
49 </rule>
50 <rule pattern="\{">
51 <token type="LiteralString"/>
52 <push state="braced-string"/>
53 </rule>
54 <rule pattern="[\d]+">
55 <token type="LiteralNumber"/>
56 </rule>
57 <rule pattern="#">
58 <token type="Punctuation"/>
59 </rule>
60 <rule>
61 <pop depth="1"/>
62 </rule>
63 </state>
64 <state name="quoted-string">
65 <rule pattern="\{">
66 <token type="LiteralString"/>
67 <push state="braced-string"/>
68 </rule>
69 <rule pattern="&#34;">
70 <token type="LiteralString"/>
71 <pop depth="1"/>
72 </rule>
73 <rule pattern="[^\{\&#34;]+">
74 <token type="LiteralString"/>
75 </rule>
76 </state>
77 <state name="root">
78 <rule>
79 <include state="whitespace"/>
80 </rule>
81 <rule pattern="@comment">
82 <token type="Comment"/>
83 </rule>
84 <rule pattern="@preamble">
85 <token type="NameClass"/>
86 <push state="closing-brace" state="value" state="opening-brace"/>
87 </rule>
88 <rule pattern="@string">
89 <token type="NameClass"/>
90 <push state="closing-brace" state="field" state="opening-brace"/>
91 </rule>
92 <rule pattern="@[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
93 <token type="NameClass"/>
94 <push state="closing-brace" state="command-body" state="opening-brace"/>
95 </rule>
96 <rule pattern=".+">
97 <token type="Comment"/>
98 </rule>
99 </state>
100 <state name="command-body">
101 <rule>
102 <include state="whitespace"/>
103 </rule>
104 <rule pattern="[^\s\,\}]+">
105 <token type="NameLabel"/>
106 <push state="#pop" state="fields"/>
107 </rule>
108 </state>
109 <state name="fields">
110 <rule>
111 <include state="whitespace"/>
112 </rule>
113 <rule pattern=",">
114 <token type="Punctuation"/>
115 <push state="field"/>
116 </rule>
117 <rule>
118 <pop depth="1"/>
119 </rule>
120 </state>
121 <state name="=">
122 <rule>
123 <include state="whitespace"/>
124 </rule>
125 <rule pattern="=">
126 <token type="Punctuation"/>
127 <pop depth="1"/>
128 </rule>
129 </state>
130 <state name="field">
131 <rule>
132 <include state="whitespace"/>
133 </rule>
134 <rule pattern="[a-z_@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~][\w@!$&amp;*+\-./:;&lt;&gt;?\[\\\]^`|~]*">
135 <token type="NameAttribute"/>
136 <push state="value" state="="/>
137 </rule>
138 <rule>
139 <pop depth="1"/>
140 </rule>
141 </state>
142 <state name="opening-brace">
143 <rule>
144 <include state="whitespace"/>
145 </rule>
146 <rule pattern="[{(]">
147 <token type="Punctuation"/>
148 <pop depth="1"/>
149 </rule>
150 </state>
151 </rules>
152</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml
new file mode 100644
index 0000000..1efc9c8
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bicep.xml
@@ -0,0 +1,68 @@
1<lexer>
2 <config>
3 <name>Bicep</name>
4 <alias>bicep</alias>
5 <filename>*.bicep</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="//[^\n\r]+">
10 <token type="CommentSingle"/>
11 </rule>
12 <rule pattern="/\*.*?\*/">
13 <token type="CommentMultiline"/>
14 </rule>
15 <rule pattern="([&#39;]?\w+[&#39;]?)(:)">
16 <bygroups>
17 <token type="NameProperty"/>
18 <token type="Punctuation"/>
19 </bygroups>
20 </rule>
21 <rule pattern="\b(&#39;(resourceGroup|subscription|managementGroup|tenant)&#39;)\b">
22 <token type="KeywordNamespace"/>
23 </rule>
24 <rule pattern="&#39;[\w\$\{\(\)\}\.]{1,}?&#39;">
25 <token type="LiteralStringInterpol"/>
26 </rule>
27 <rule pattern="(&#39;&#39;&#39;|&#39;).*?(&#39;&#39;&#39;|&#39;)">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern="\b(allowed|batchSize|description|maxLength|maxValue|metadata|minLength|minValue|secure)\b">
31 <token type="NameDecorator"/>
32 </rule>
33 <rule pattern="\b(az|sys)\.">
34 <token type="NameNamespace"/>
35 </rule>
36 <rule pattern="\b(any|array|concat|contains|empty|first|intersection|items|last|length|min|max|range|skip|take|union|dateTimeAdd|utcNow|deployment|environment|loadFileAsBase64|loadTextContent|int|json|extensionResourceId|getSecret|list|listKeys|listKeyValue|listAccountSas|listSecrets|pickZones|reference|resourceId|subscriptionResourceId|tenantResourceId|managementGroup|resourceGroup|subscription|tenant|base64|base64ToJson|base64ToString|dataUri|dataUriToString|endsWith|format|guid|indexOf|lastIndexOf|length|newGuid|padLeft|replace|split|startsWith|string|substring|toLower|toUpper|trim|uniqueString|uri|uriComponent|uriComponentToString)\b">
37 <token type="NameFunction"/>
38 </rule>
39 <rule pattern="\b(bool)(\()">
40 <bygroups>
41 <token type="NameFunction"/>
42 <token type="Punctuation"/>
43 </bygroups>
44 </rule>
45 <rule pattern="\b(for|if|in)\b">
46 <token type="Keyword"/>
47 </rule>
48 <rule pattern="\b(module|output|param|resource|var)\b">
49 <token type="KeywordDeclaration"/>
50 </rule>
51 <rule pattern="\b(array|bool|int|object|string)\b">
52 <token type="KeywordType"/>
53 </rule>
54 <rule pattern="(&gt;=|&gt;|&lt;=|&lt;|==|!=|=~|!~|::|&amp;&amp;|\?\?|!|-|%|\*|\/|\+)">
55 <token type="Operator"/>
56 </rule>
57 <rule pattern="[\(\)\[\]\.:\?{}@=]">
58 <token type="Punctuation"/>
59 </rule>
60 <rule pattern="[\w_-]+">
61 <token type="Text"/>
62 </rule>
63 <rule pattern="\s+">
64 <token type="TextWhitespace"/>
65 </rule>
66 </state>
67 </rules>
68</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml
new file mode 100644
index 0000000..591b1ad
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/blitzbasic.xml
@@ -0,0 +1,141 @@
1<lexer>
2 <config>
3 <name>BlitzBasic</name>
4 <alias>blitzbasic</alias>
5 <alias>b3d</alias>
6 <alias>bplus</alias>
7 <filename>*.bb</filename>
8 <filename>*.decls</filename>
9 <mime_type>text/x-bb</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="string">
14 <rule pattern="&#34;&#34;">
15 <token type="LiteralStringDouble"/>
16 </rule>
17 <rule pattern="&#34;C?">
18 <token type="LiteralStringDouble"/>
19 <pop depth="1"/>
20 </rule>
21 <rule pattern="[^&#34;]+">
22 <token type="LiteralStringDouble"/>
23 </rule>
24 </state>
25 <state name="root">
26 <rule pattern="[ \t]+">
27 <token type="Text"/>
28 </rule>
29 <rule pattern=";.*?\n">
30 <token type="CommentSingle"/>
31 </rule>
32 <rule pattern="&#34;">
33 <token type="LiteralStringDouble"/>
34 <push state="string"/>
35 </rule>
36 <rule pattern="[0-9]+\.[0-9]*(?!\.)">
37 <token type="LiteralNumberFloat"/>
38 </rule>
39 <rule pattern="\.[0-9]+(?!\.)">
40 <token type="LiteralNumberFloat"/>
41 </rule>
42 <rule pattern="[0-9]+">
43 <token type="LiteralNumberInteger"/>
44 </rule>
45 <rule pattern="\$[0-9a-f]+">
46 <token type="LiteralNumberHex"/>
47 </rule>
48 <rule pattern="\%[10]+">
49 <token type="LiteralNumberBin"/>
50 </rule>
51 <rule pattern="\b(Before|Handle|After|First|Float|Last|Sgn|Abs|Not|And|Int|Mod|Str|Sar|Shr|Shl|Or)\b">
52 <token type="Operator"/>
53 </rule>
54 <rule pattern="([+\-*/~=&lt;&gt;^])">
55 <token type="Operator"/>
56 </rule>
57 <rule pattern="[(),:\[\]\\]">
58 <token type="Punctuation"/>
59 </rule>
60 <rule pattern="\.([ \t]*)([a-z]\w*)">
61 <token type="NameLabel"/>
62 </rule>
63 <rule pattern="\b(New)\b([ \t]+)([a-z]\w*)">
64 <bygroups>
65 <token type="KeywordReserved"/>
66 <token type="Text"/>
67 <token type="NameClass"/>
68 </bygroups>
69 </rule>
70 <rule pattern="\b(Gosub|Goto)\b([ \t]+)([a-z]\w*)">
71 <bygroups>
72 <token type="KeywordReserved"/>
73 <token type="Text"/>
74 <token type="NameLabel"/>
75 </bygroups>
76 </rule>
77 <rule pattern="\b(Object)\b([ \t]*)([.])([ \t]*)([a-z]\w*)\b">
78 <bygroups>
79 <token type="Operator"/>
80 <token type="Text"/>
81 <token type="Punctuation"/>
82 <token type="Text"/>
83 <token type="NameClass"/>
84 </bygroups>
85 </rule>
86 <rule pattern="\b([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?\b([ \t]*)(\()">
87 <bygroups>
88 <token type="NameFunction"/>
89 <token type="Text"/>
90 <token type="KeywordType"/>
91 <token type="Text"/>
92 <token type="Punctuation"/>
93 <token type="Text"/>
94 <token type="NameClass"/>
95 <token type="Text"/>
96 <token type="Punctuation"/>
97 </bygroups>
98 </rule>
99 <rule pattern="\b(Function)\b([ \t]+)([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
100 <bygroups>
101 <token type="KeywordReserved"/>
102 <token type="Text"/>
103 <token type="NameFunction"/>
104 <token type="Text"/>
105 <token type="KeywordType"/>
106 <token type="Text"/>
107 <token type="Punctuation"/>
108 <token type="Text"/>
109 <token type="NameClass"/>
110 </bygroups>
111 </rule>
112 <rule pattern="\b(Type)([ \t]+)([a-z]\w*)">
113 <bygroups>
114 <token type="KeywordReserved"/>
115 <token type="Text"/>
116 <token type="NameClass"/>
117 </bygroups>
118 </rule>
119 <rule pattern="\b(Pi|True|False|Null)\b">
120 <token type="KeywordConstant"/>
121 </rule>
122 <rule pattern="\b(Local|Global|Const|Field|Dim)\b">
123 <token type="KeywordDeclaration"/>
124 </rule>
125 <rule pattern="\b(Function|Restore|Default|Forever|Include|Return|Repeat|ElseIf|Delete|Insert|Select|EndIf|Until|While|Gosub|Type|Goto|Else|Data|Next|Step|Each|Case|Wend|Exit|Read|Then|For|New|Asc|Len|Chr|End|To|If)\b">
126 <token type="KeywordReserved"/>
127 </rule>
128 <rule pattern="([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?">
129 <bygroups>
130 <token type="NameVariable"/>
131 <token type="Text"/>
132 <token type="KeywordType"/>
133 <token type="Text"/>
134 <token type="Punctuation"/>
135 <token type="Text"/>
136 <token type="NameClass"/>
137 </bygroups>
138 </rule>
139 </state>
140 </rules>
141</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml
new file mode 100644
index 0000000..5c98424
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/bnf.xml
@@ -0,0 +1,28 @@
1<lexer>
2 <config>
3 <name>BNF</name>
4 <alias>bnf</alias>
5 <filename>*.bnf</filename>
6 <mime_type>text/x-bnf</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="(&lt;)([ -;=?-~]+)(&gt;)">
11 <bygroups>
12 <token type="Punctuation"/>
13 <token type="NameClass"/>
14 <token type="Punctuation"/>
15 </bygroups>
16 </rule>
17 <rule pattern="::=">
18 <token type="Operator"/>
19 </rule>
20 <rule pattern="[^&lt;&gt;:]+">
21 <token type="Text"/>
22 </rule>
23 <rule pattern=".">
24 <token type="Text"/>
25 </rule>
26 </state>
27 </rules>
28</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml
new file mode 100644
index 0000000..4c84c33
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/brainfuck.xml
@@ -0,0 +1,51 @@
1<lexer>
2 <config>
3 <name>Brainfuck</name>
4 <alias>brainfuck</alias>
5 <alias>bf</alias>
6 <filename>*.bf</filename>
7 <filename>*.b</filename>
8 <mime_type>application/x-brainfuck</mime_type>
9 </config>
10 <rules>
11 <state name="common">
12 <rule pattern="[.,]+">
13 <token type="NameTag"/>
14 </rule>
15 <rule pattern="[+-]+">
16 <token type="NameBuiltin"/>
17 </rule>
18 <rule pattern="[&lt;&gt;]+">
19 <token type="NameVariable"/>
20 </rule>
21 <rule pattern="[^.,+\-&lt;&gt;\[\]]+">
22 <token type="Comment"/>
23 </rule>
24 </state>
25 <state name="root">
26 <rule pattern="\[">
27 <token type="Keyword"/>
28 <push state="loop"/>
29 </rule>
30 <rule pattern="\]">
31 <token type="Error"/>
32 </rule>
33 <rule>
34 <include state="common"/>
35 </rule>
36 </state>
37 <state name="loop">
38 <rule pattern="\[">
39 <token type="Keyword"/>
40 <push/>
41 </rule>
42 <rule pattern="\]">
43 <token type="Keyword"/>
44 <pop depth="1"/>
45 </rule>
46 <rule>
47 <include state="common"/>
48 </rule>
49 </state>
50 </rules>
51</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml
new file mode 100644
index 0000000..e8702c5
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c++.xml
@@ -0,0 +1,326 @@
1<lexer>
2 <config>
3 <name>C++</name>
4 <alias>cpp</alias>
5 <alias>c++</alias>
6 <filename>*.cpp</filename>
7 <filename>*.hpp</filename>
8 <filename>*.c++</filename>
9 <filename>*.h++</filename>
10 <filename>*.cc</filename>
11 <filename>*.hh</filename>
12 <filename>*.cxx</filename>
13 <filename>*.hxx</filename>
14 <filename>*.C</filename>
15 <filename>*.H</filename>
16 <filename>*.cp</filename>
17 <filename>*.CPP</filename>
18 <mime_type>text/x-c++hdr</mime_type>
19 <mime_type>text/x-c++src</mime_type>
20 <ensure_nl>true</ensure_nl>
21 </config>
22 <rules>
23 <state name="classname">
24 <rule pattern="(\[\[.+\]\])(\s*)">
25 <bygroups>
26 <token type="NameAttribute"/>
27 <token type="Text"/>
28 </bygroups>
29 </rule>
30 <rule pattern="[a-zA-Z_]\w*">
31 <token type="NameClass"/>
32 <pop depth="1"/>
33 </rule>
34 <rule pattern="\s*(?=[&gt;{])">
35 <token type="Text"/>
36 <pop depth="1"/>
37 </rule>
38 </state>
39 <state name="whitespace">
40 <rule pattern="^#if\s+0">
41 <token type="CommentPreproc"/>
42 <push state="if0"/>
43 </rule>
44 <rule pattern="^#">
45 <token type="CommentPreproc"/>
46 <push state="macro"/>
47 </rule>
48 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
49 <bygroups>
50 <usingself state="root"/>
51 <token type="CommentPreproc"/>
52 </bygroups>
53 <push state="if0"/>
54 </rule>
55 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
56 <bygroups>
57 <usingself state="root"/>
58 <token type="CommentPreproc"/>
59 </bygroups>
60 <push state="macro"/>
61 </rule>
62 <rule pattern="\n">
63 <token type="Text"/>
64 </rule>
65 <rule pattern="\s+">
66 <token type="Text"/>
67 </rule>
68 <rule pattern="\\\n">
69 <token type="Text"/>
70 </rule>
71 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
72 <token type="CommentSingle"/>
73 </rule>
74 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
75 <token type="CommentMultiline"/>
76 </rule>
77 <rule pattern="/(\\\n)?[*][\w\W]*">
78 <token type="CommentMultiline"/>
79 </rule>
80 </state>
81 <state name="macro">
82 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
83 <bygroups>
84 <token type="CommentPreproc"/>
85 <token type="Text"/>
86 <token type="CommentPreprocFile"/>
87 </bygroups>
88 </rule>
89 <rule pattern="[^/\n]+">
90 <token type="CommentPreproc"/>
91 </rule>
92 <rule pattern="/[*](.|\n)*?[*]/">
93 <token type="CommentMultiline"/>
94 </rule>
95 <rule pattern="//.*?\n">
96 <token type="CommentSingle"/>
97 <pop depth="1"/>
98 </rule>
99 <rule pattern="/">
100 <token type="CommentPreproc"/>
101 </rule>
102 <rule pattern="(?&lt;=\\)\n">
103 <token type="CommentPreproc"/>
104 </rule>
105 <rule pattern="\n">
106 <token type="CommentPreproc"/>
107 <pop depth="1"/>
108 </rule>
109 </state>
110 <state name="statements">
111 <rule pattern="(reinterpret_cast|static_assert|thread_local|dynamic_cast|static_cast|const_cast|co_return|protected|namespace|consteval|constexpr|typename|co_await|co_yield|operator|restrict|explicit|template|override|noexcept|requires|decltype|alignof|private|alignas|virtual|mutable|nullptr|concept|export|friend|typeid|throws|public|delete|final|throw|catch|using|this|new|try)\b">
112 <token type="Keyword"/>
113 </rule>
114 <rule pattern="(enum)\b(\s+)(class)\b(\s*)">
115 <bygroups>
116 <token type="Keyword"/>
117 <token type="Text"/>
118 <token type="Keyword"/>
119 <token type="Text"/>
120 </bygroups>
121 <push state="classname"/>
122 </rule>
123 <rule pattern="(class|struct|enum|union)\b(\s*)">
124 <bygroups>
125 <token type="Keyword"/>
126 <token type="Text"/>
127 </bygroups>
128 <push state="classname"/>
129 </rule>
130 <rule pattern="\[\[.+\]\]">
131 <token type="NameAttribute"/>
132 </rule>
133 <rule pattern="(R)(&#34;)([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(&#34;)">
134 <bygroups>
135 <token type="LiteralStringAffix"/>
136 <token type="LiteralString"/>
137 <token type="LiteralStringDelimiter"/>
138 <token type="LiteralStringDelimiter"/>
139 <token type="LiteralString"/>
140 <token type="LiteralStringDelimiter"/>
141 <token type="LiteralString"/>
142 </bygroups>
143 </rule>
144 <rule pattern="(u8|u|U)(&#34;)">
145 <bygroups>
146 <token type="LiteralStringAffix"/>
147 <token type="LiteralString"/>
148 </bygroups>
149 <push state="string"/>
150 </rule>
151 <rule pattern="(L?)(&#34;)">
152 <bygroups>
153 <token type="LiteralStringAffix"/>
154 <token type="LiteralString"/>
155 </bygroups>
156 <push state="string"/>
157 </rule>
158 <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
159 <bygroups>
160 <token type="LiteralStringAffix"/>
161 <token type="LiteralStringChar"/>
162 <token type="LiteralStringChar"/>
163 <token type="LiteralStringChar"/>
164 </bygroups>
165 </rule>
166 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
167 <token type="LiteralNumberFloat"/>
168 </rule>
169 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
170 <token type="LiteralNumberFloat"/>
171 </rule>
172 <rule pattern="0[xX]([0-9A-Fa-f](&#39;?[0-9A-Fa-f]+)*)[LlUu]*">
173 <token type="LiteralNumberHex"/>
174 </rule>
175 <rule pattern="0(&#39;?[0-7]+)+[LlUu]*">
176 <token type="LiteralNumberOct"/>
177 </rule>
178 <rule pattern="0[Bb][01](&#39;?[01]+)*[LlUu]*">
179 <token type="LiteralNumberBin"/>
180 </rule>
181 <rule pattern="[0-9](&#39;?[0-9]+)*[LlUu]*">
182 <token type="LiteralNumberInteger"/>
183 </rule>
184 <rule pattern="\*/">
185 <token type="Error"/>
186 </rule>
187 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
188 <token type="Operator"/>
189 </rule>
190 <rule pattern="[()\[\],.]">
191 <token type="Punctuation"/>
192 </rule>
193 <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
194 <token type="Keyword"/>
195 </rule>
196 <rule pattern="(bool|int|long|float|short|double|char((8|16|32)_t)?|wchar_t|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b">
197 <token type="KeywordType"/>
198 </rule>
199 <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
200 <token type="KeywordReserved"/>
201 </rule>
202 <rule pattern="(__m(128i|128d|128|64))\b">
203 <token type="KeywordReserved"/>
204 </rule>
205 <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|stdcall|finally|except|assume|int32|cdecl|int64|based|leave|int16|raise|noop|int8|w64|try|asm)\b">
206 <token type="KeywordReserved"/>
207 </rule>
208 <rule pattern="(true|false|NULL)\b">
209 <token type="NameBuiltin"/>
210 </rule>
211 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
212 <bygroups>
213 <token type="NameLabel"/>
214 <token type="Text"/>
215 <token type="Punctuation"/>
216 </bygroups>
217 </rule>
218 <rule pattern="[a-zA-Z_]\w*">
219 <token type="Name"/>
220 </rule>
221 </state>
222 <state name="function">
223 <rule>
224 <include state="whitespace"/>
225 </rule>
226 <rule>
227 <include state="statements"/>
228 </rule>
229 <rule pattern=";">
230 <token type="Punctuation"/>
231 </rule>
232 <rule pattern="\{">
233 <token type="Punctuation"/>
234 <push/>
235 </rule>
236 <rule pattern="\}">
237 <token type="Punctuation"/>
238 <pop depth="1"/>
239 </rule>
240 </state>
241 <state name="string">
242 <rule pattern="&#34;">
243 <token type="LiteralString"/>
244 <pop depth="1"/>
245 </rule>
246 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
247 <token type="LiteralStringEscape"/>
248 </rule>
249 <rule pattern="[^\\&#34;\n]+">
250 <token type="LiteralString"/>
251 </rule>
252 <rule pattern="\\\n">
253 <token type="LiteralString"/>
254 </rule>
255 <rule pattern="\\">
256 <token type="LiteralString"/>
257 </rule>
258 </state>
259 <state name="if0">
260 <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
261 <token type="CommentPreproc"/>
262 <push/>
263 </rule>
264 <rule pattern="^\s*#el(?:se|if).*\n">
265 <token type="CommentPreproc"/>
266 <pop depth="1"/>
267 </rule>
268 <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
269 <token type="CommentPreproc"/>
270 <pop depth="1"/>
271 </rule>
272 <rule pattern=".*?\n">
273 <token type="Comment"/>
274 </rule>
275 </state>
276 <state name="root">
277 <rule>
278 <include state="whitespace"/>
279 </rule>
280 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
281 <bygroups>
282 <usingself state="root"/>
283 <token type="NameFunction"/>
284 <usingself state="root"/>
285 <usingself state="root"/>
286 <token type="Punctuation"/>
287 </bygroups>
288 <push state="function"/>
289 </rule>
290 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
291 <bygroups>
292 <usingself state="root"/>
293 <token type="NameFunction"/>
294 <usingself state="root"/>
295 <usingself state="root"/>
296 <token type="Punctuation"/>
297 </bygroups>
298 </rule>
299 <rule>
300 <push state="statement"/>
301 </rule>
302 <rule pattern="__(multiple_inheritance|virtual_inheritance|single_inheritance|interface|uuidof|super|event)\b">
303 <token type="KeywordReserved"/>
304 </rule>
305 <rule pattern="__(offload|blockingoffload|outer)\b">
306 <token type="KeywordPseudo"/>
307 </rule>
308 </state>
309 <state name="statement">
310 <rule>
311 <include state="whitespace"/>
312 </rule>
313 <rule>
314 <include state="statements"/>
315 </rule>
316 <rule pattern="[{]">
317 <token type="Punctuation"/>
318 <push state="root"/>
319 </rule>
320 <rule pattern="[;}]">
321 <token type="Punctuation"/>
322 <pop depth="1"/>
323 </rule>
324 </state>
325 </rules>
326</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml
new file mode 100644
index 0000000..d63d9b7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/c.xml
@@ -0,0 +1,253 @@
1<lexer>
2 <config>
3 <name>C</name>
4 <alias>c</alias>
5 <filename>*.c</filename>
6 <filename>*.h</filename>
7 <filename>*.idc</filename>
8 <filename>*.x[bp]m</filename>
9 <mime_type>text/x-chdr</mime_type>
10 <mime_type>text/x-csrc</mime_type>
11 <mime_type>image/x-xbitmap</mime_type>
12 <mime_type>image/x-xpixmap</mime_type>
13 <ensure_nl>true</ensure_nl>
14 </config>
15 <rules>
16 <state name="statement">
17 <rule>
18 <include state="whitespace"/>
19 </rule>
20 <rule>
21 <include state="statements"/>
22 </rule>
23 <rule pattern="[{}]">
24 <token type="Punctuation"/>
25 </rule>
26 <rule pattern=";">
27 <token type="Punctuation"/>
28 <pop depth="1"/>
29 </rule>
30 </state>
31 <state name="function">
32 <rule>
33 <include state="whitespace"/>
34 </rule>
35 <rule>
36 <include state="statements"/>
37 </rule>
38 <rule pattern=";">
39 <token type="Punctuation"/>
40 </rule>
41 <rule pattern="\{">
42 <token type="Punctuation"/>
43 <push/>
44 </rule>
45 <rule pattern="\}">
46 <token type="Punctuation"/>
47 <pop depth="1"/>
48 </rule>
49 </state>
50 <state name="string">
51 <rule pattern="&#34;">
52 <token type="LiteralString"/>
53 <pop depth="1"/>
54 </rule>
55 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
56 <token type="LiteralStringEscape"/>
57 </rule>
58 <rule pattern="[^\\&#34;\n]+">
59 <token type="LiteralString"/>
60 </rule>
61 <rule pattern="\\\n">
62 <token type="LiteralString"/>
63 </rule>
64 <rule pattern="\\">
65 <token type="LiteralString"/>
66 </rule>
67 </state>
68 <state name="macro">
69 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
70 <bygroups>
71 <token type="CommentPreproc"/>
72 <token type="Text"/>
73 <token type="CommentPreprocFile"/>
74 </bygroups>
75 </rule>
76 <rule pattern="[^/\n]+">
77 <token type="CommentPreproc"/>
78 </rule>
79 <rule pattern="/[*](.|\n)*?[*]/">
80 <token type="CommentMultiline"/>
81 </rule>
82 <rule pattern="//.*?\n">
83 <token type="CommentSingle"/>
84 <pop depth="1"/>
85 </rule>
86 <rule pattern="/">
87 <token type="CommentPreproc"/>
88 </rule>
89 <rule pattern="(?&lt;=\\)\n">
90 <token type="CommentPreproc"/>
91 </rule>
92 <rule pattern="\n">
93 <token type="CommentPreproc"/>
94 <pop depth="1"/>
95 </rule>
96 </state>
97 <state name="if0">
98 <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
99 <token type="CommentPreproc"/>
100 <push/>
101 </rule>
102 <rule pattern="^\s*#el(?:se|if).*\n">
103 <token type="CommentPreproc"/>
104 <pop depth="1"/>
105 </rule>
106 <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
107 <token type="CommentPreproc"/>
108 <pop depth="1"/>
109 </rule>
110 <rule pattern=".*?\n">
111 <token type="Comment"/>
112 </rule>
113 </state>
114 <state name="whitespace">
115 <rule pattern="^#if\s+0">
116 <token type="CommentPreproc"/>
117 <push state="if0"/>
118 </rule>
119 <rule pattern="^#">
120 <token type="CommentPreproc"/>
121 <push state="macro"/>
122 </rule>
123 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
124 <bygroups>
125 <usingself state="root"/>
126 <token type="CommentPreproc"/>
127 </bygroups>
128 <push state="if0"/>
129 </rule>
130 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
131 <bygroups>
132 <usingself state="root"/>
133 <token type="CommentPreproc"/>
134 </bygroups>
135 <push state="macro"/>
136 </rule>
137 <rule pattern="\n">
138 <token type="Text"/>
139 </rule>
140 <rule pattern="\s+">
141 <token type="Text"/>
142 </rule>
143 <rule pattern="\\\n">
144 <token type="Text"/>
145 </rule>
146 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
147 <token type="CommentSingle"/>
148 </rule>
149 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
150 <token type="CommentMultiline"/>
151 </rule>
152 <rule pattern="/(\\\n)?[*][\w\W]*">
153 <token type="CommentMultiline"/>
154 </rule>
155 </state>
156 <state name="statements">
157 <rule pattern="(L?)(&#34;)">
158 <bygroups>
159 <token type="LiteralStringAffix"/>
160 <token type="LiteralString"/>
161 </bygroups>
162 <push state="string"/>
163 </rule>
164 <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
165 <bygroups>
166 <token type="LiteralStringAffix"/>
167 <token type="LiteralStringChar"/>
168 <token type="LiteralStringChar"/>
169 <token type="LiteralStringChar"/>
170 </bygroups>
171 </rule>
172 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
173 <token type="LiteralNumberFloat"/>
174 </rule>
175 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
176 <token type="LiteralNumberFloat"/>
177 </rule>
178 <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
179 <token type="LiteralNumberHex"/>
180 </rule>
181 <rule pattern="0[0-7]+[LlUu]*">
182 <token type="LiteralNumberOct"/>
183 </rule>
184 <rule pattern="\d+[LlUu]*">
185 <token type="LiteralNumberInteger"/>
186 </rule>
187 <rule pattern="\*/">
188 <token type="Error"/>
189 </rule>
190 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
191 <token type="Operator"/>
192 </rule>
193 <rule pattern="[()\[\],.]">
194 <token type="Punctuation"/>
195 </rule>
196 <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
197 <token type="Keyword"/>
198 </rule>
199 <rule pattern="(bool|int|long|float|short|double|char((8|16|32)_t)?|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b">
200 <token type="KeywordType"/>
201 </rule>
202 <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
203 <token type="KeywordReserved"/>
204 </rule>
205 <rule pattern="(__m(128i|128d|128|64))\b">
206 <token type="KeywordReserved"/>
207 </rule>
208 <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
209 <token type="KeywordReserved"/>
210 </rule>
211 <rule pattern="(true|false|NULL)\b">
212 <token type="NameBuiltin"/>
213 </rule>
214 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
215 <bygroups>
216 <token type="NameLabel"/>
217 <token type="Text"/>
218 <token type="Punctuation"/>
219 </bygroups>
220 </rule>
221 <rule pattern="[a-zA-Z_]\w*">
222 <token type="Name"/>
223 </rule>
224 </state>
225 <state name="root">
226 <rule>
227 <include state="whitespace"/>
228 </rule>
229 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
230 <bygroups>
231 <usingself state="root"/>
232 <token type="NameFunction"/>
233 <usingself state="root"/>
234 <usingself state="root"/>
235 <token type="Punctuation"/>
236 </bygroups>
237 <push state="function"/>
238 </rule>
239 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
240 <bygroups>
241 <usingself state="root"/>
242 <token type="NameFunction"/>
243 <usingself state="root"/>
244 <usingself state="root"/>
245 <token type="Punctuation"/>
246 </bygroups>
247 </rule>
248 <rule>
249 <push state="statement"/>
250 </rule>
251 </state>
252 </rules>
253</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml
new file mode 100644
index 0000000..3e7d147
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cap_n_proto.xml
@@ -0,0 +1,122 @@
1<lexer>
2 <config>
3 <name>Cap&#39;n Proto</name>
4 <alias>capnp</alias>
5 <filename>*.capnp</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="#.*?$">
10 <token type="CommentSingle"/>
11 </rule>
12 <rule pattern="@[0-9a-zA-Z]*">
13 <token type="NameDecorator"/>
14 </rule>
15 <rule pattern="=">
16 <token type="Literal"/>
17 <push state="expression"/>
18 </rule>
19 <rule pattern=":">
20 <token type="NameClass"/>
21 <push state="type"/>
22 </rule>
23 <rule pattern="\$">
24 <token type="NameAttribute"/>
25 <push state="annotation"/>
26 </rule>
27 <rule pattern="(struct|enum|interface|union|import|using|const|annotation|extends|in|of|on|as|with|from|fixed)\b">
28 <token type="Keyword"/>
29 </rule>
30 <rule pattern="[\w.]+">
31 <token type="Name"/>
32 </rule>
33 <rule pattern="[^#@=:$\w]+">
34 <token type="Text"/>
35 </rule>
36 </state>
37 <state name="type">
38 <rule pattern="[^][=;,(){}$]+">
39 <token type="NameClass"/>
40 </rule>
41 <rule pattern="[[(]">
42 <token type="NameClass"/>
43 <push state="parentype"/>
44 </rule>
45 <rule>
46 <pop depth="1"/>
47 </rule>
48 </state>
49 <state name="parentype">
50 <rule pattern="[^][;()]+">
51 <token type="NameClass"/>
52 </rule>
53 <rule pattern="[[(]">
54 <token type="NameClass"/>
55 <push/>
56 </rule>
57 <rule pattern="[])]">
58 <token type="NameClass"/>
59 <pop depth="1"/>
60 </rule>
61 <rule>
62 <pop depth="1"/>
63 </rule>
64 </state>
65 <state name="expression">
66 <rule pattern="[^][;,(){}$]+">
67 <token type="Literal"/>
68 </rule>
69 <rule pattern="[[(]">
70 <token type="Literal"/>
71 <push state="parenexp"/>
72 </rule>
73 <rule>
74 <pop depth="1"/>
75 </rule>
76 </state>
77 <state name="parenexp">
78 <rule pattern="[^][;()]+">
79 <token type="Literal"/>
80 </rule>
81 <rule pattern="[[(]">
82 <token type="Literal"/>
83 <push/>
84 </rule>
85 <rule pattern="[])]">
86 <token type="Literal"/>
87 <pop depth="1"/>
88 </rule>
89 <rule>
90 <pop depth="1"/>
91 </rule>
92 </state>
93 <state name="annotation">
94 <rule pattern="[^][;,(){}=:]+">
95 <token type="NameAttribute"/>
96 </rule>
97 <rule pattern="[[(]">
98 <token type="NameAttribute"/>
99 <push state="annexp"/>
100 </rule>
101 <rule>
102 <pop depth="1"/>
103 </rule>
104 </state>
105 <state name="annexp">
106 <rule pattern="[^][;()]+">
107 <token type="NameAttribute"/>
108 </rule>
109 <rule pattern="[[(]">
110 <token type="NameAttribute"/>
111 <push/>
112 </rule>
113 <rule pattern="[])]">
114 <token type="NameAttribute"/>
115 <pop depth="1"/>
116 </rule>
117 <rule>
118 <pop depth="1"/>
119 </rule>
120 </state>
121 </rules>
122</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml
new file mode 100644
index 0000000..4c41218
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ceylon.xml
@@ -0,0 +1,151 @@
1<lexer>
2 <config>
3 <name>Ceylon</name>
4 <alias>ceylon</alias>
5 <filename>*.ceylon</filename>
6 <mime_type>text/x-ceylon</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="class">
11 <rule pattern="[A-Za-z_]\w*">
12 <token type="NameClass"/>
13 <pop depth="1"/>
14 </rule>
15 </state>
16 <state name="import">
17 <rule pattern="[a-z][\w.]*">
18 <token type="NameNamespace"/>
19 <pop depth="1"/>
20 </rule>
21 </state>
22 <state name="comment">
23 <rule pattern="[^*/]">
24 <token type="CommentMultiline"/>
25 </rule>
26 <rule pattern="/\*">
27 <token type="CommentMultiline"/>
28 <push/>
29 </rule>
30 <rule pattern="\*/">
31 <token type="CommentMultiline"/>
32 <pop depth="1"/>
33 </rule>
34 <rule pattern="[*/]">
35 <token type="CommentMultiline"/>
36 </rule>
37 </state>
38 <state name="root">
39 <rule pattern="^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()">
40 <bygroups>
41 <usingself state="root"/>
42 <token type="NameFunction"/>
43 <token type="Text"/>
44 <token type="Operator"/>
45 </bygroups>
46 </rule>
47 <rule pattern="[^\S\n]+">
48 <token type="Text"/>
49 </rule>
50 <rule pattern="//.*?\n">
51 <token type="CommentSingle"/>
52 </rule>
53 <rule pattern="/\*">
54 <token type="CommentMultiline"/>
55 <push state="comment"/>
56 </rule>
57 <rule pattern="(shared|abstract|formal|default|actual|variable|deprecated|small|late|literal|doc|by|see|throws|optional|license|tagged|final|native|annotation|sealed)\b">
58 <token type="NameDecorator"/>
59 </rule>
60 <rule pattern="(break|case|catch|continue|else|finally|for|in|if|return|switch|this|throw|try|while|is|exists|dynamic|nonempty|then|outer|assert|let)\b">
61 <token type="Keyword"/>
62 </rule>
63 <rule pattern="(abstracts|extends|satisfies|super|given|of|out|assign)\b">
64 <token type="KeywordDeclaration"/>
65 </rule>
66 <rule pattern="(function|value|void|new)\b">
67 <token type="KeywordType"/>
68 </rule>
69 <rule pattern="(assembly|module|package)(\s+)">
70 <bygroups>
71 <token type="KeywordNamespace"/>
72 <token type="Text"/>
73 </bygroups>
74 </rule>
75 <rule pattern="(true|false|null)\b">
76 <token type="KeywordConstant"/>
77 </rule>
78 <rule pattern="(class|interface|object|alias)(\s+)">
79 <bygroups>
80 <token type="KeywordDeclaration"/>
81 <token type="Text"/>
82 </bygroups>
83 <push state="class"/>
84 </rule>
85 <rule pattern="(import)(\s+)">
86 <bygroups>
87 <token type="KeywordNamespace"/>
88 <token type="Text"/>
89 </bygroups>
90 <push state="import"/>
91 </rule>
92 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
93 <token type="LiteralString"/>
94 </rule>
95 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\\{#[0-9a-fA-F]{4}\}&#39;">
96 <token type="LiteralStringChar"/>
97 </rule>
98 <rule pattern="&#34;.*``.*``.*&#34;">
99 <token type="LiteralStringInterpol"/>
100 </rule>
101 <rule pattern="(\.)([a-z_]\w*)">
102 <bygroups>
103 <token type="Operator"/>
104 <token type="NameAttribute"/>
105 </bygroups>
106 </rule>
107 <rule pattern="[a-zA-Z_]\w*:">
108 <token type="NameLabel"/>
109 </rule>
110 <rule pattern="[a-zA-Z_]\w*">
111 <token type="Name"/>
112 </rule>
113 <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
114 <token type="Operator"/>
115 </rule>
116 <rule pattern="\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?">
117 <token type="LiteralNumberFloat"/>
118 </rule>
119 <rule pattern="\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?">
120 <token type="LiteralNumberFloat"/>
121 </rule>
122 <rule pattern="[0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?">
123 <token type="LiteralNumberFloat"/>
124 </rule>
125 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?">
126 <token type="LiteralNumberFloat"/>
127 </rule>
128 <rule pattern="#([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+">
129 <token type="LiteralNumberHex"/>
130 </rule>
131 <rule pattern="#[0-9a-fA-F]+">
132 <token type="LiteralNumberHex"/>
133 </rule>
134 <rule pattern="\$([01]{4})(_[01]{4})+">
135 <token type="LiteralNumberBin"/>
136 </rule>
137 <rule pattern="\$[01]+">
138 <token type="LiteralNumberBin"/>
139 </rule>
140 <rule pattern="\d{1,3}(_\d{3})+[kMGTP]?">
141 <token type="LiteralNumberInteger"/>
142 </rule>
143 <rule pattern="[0-9]+[kMGTP]?">
144 <token type="LiteralNumberInteger"/>
145 </rule>
146 <rule pattern="\n">
147 <token type="Text"/>
148 </rule>
149 </state>
150 </rules>
151</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
new file mode 100644
index 0000000..d330549
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
@@ -0,0 +1,206 @@
1<lexer>
2 <config>
3 <name>CFEngine3</name>
4 <alias>cfengine3</alias>
5 <alias>cf3</alias>
6 <filename>*.cf</filename>
7 </config>
8 <rules>
9 <state name="interpol">
10 <rule pattern="\$[{(]">
11 <token type="LiteralStringInterpol"/>
12 <push/>
13 </rule>
14 <rule pattern="[})]">
15 <token type="LiteralStringInterpol"/>
16 <pop depth="1"/>
17 </rule>
18 <rule pattern="[^${()}]+">
19 <token type="LiteralStringInterpol"/>
20 </rule>
21 </state>
22 <state name="arglist">
23 <rule pattern="\)">
24 <token type="Punctuation"/>
25 <pop depth="1"/>
26 </rule>
27 <rule pattern=",">
28 <token type="Punctuation"/>
29 </rule>
30 <rule pattern="\w+">
31 <token type="NameVariable"/>
32 </rule>
33 <rule pattern="\s+">
34 <token type="Text"/>
35 </rule>
36 </state>
37 <state name="root">
38 <rule pattern="#.*?\n">
39 <token type="Comment"/>
40 </rule>
41 <rule pattern="@.*?\n">
42 <token type="CommentPreproc"/>
43 </rule>
44 <rule pattern="(body)(\s+)(\S+)(\s+)(control)">
45 <bygroups>
46 <token type="Keyword"/>
47 <token type="Text"/>
48 <token type="Keyword"/>
49 <token type="Text"/>
50 <token type="Keyword"/>
51 </bygroups>
52 </rule>
53 <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)(\()">
54 <bygroups>
55 <token type="Keyword"/>
56 <token type="Text"/>
57 <token type="Keyword"/>
58 <token type="Text"/>
59 <token type="NameFunction"/>
60 <token type="Punctuation"/>
61 </bygroups>
62 <push state="arglist"/>
63 </rule>
64 <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)">
65 <bygroups>
66 <token type="Keyword"/>
67 <token type="Text"/>
68 <token type="Keyword"/>
69 <token type="Text"/>
70 <token type="NameFunction"/>
71 </bygroups>
72 </rule>
73 <rule pattern="(&#34;)([^&#34;]+)(&#34;)(\s+)(string|slist|int|real)(\s*)(=&gt;)(\s*)">
74 <bygroups>
75 <token type="Punctuation"/>
76 <token type="NameVariable"/>
77 <token type="Punctuation"/>
78 <token type="Text"/>
79 <token type="KeywordType"/>
80 <token type="Text"/>
81 <token type="Operator"/>
82 <token type="Text"/>
83 </bygroups>
84 </rule>
85 <rule pattern="(\S+)(\s*)(=&gt;)(\s*)">
86 <bygroups>
87 <token type="KeywordReserved"/>
88 <token type="Text"/>
89 <token type="Operator"/>
90 <token type="Text"/>
91 </bygroups>
92 </rule>
93 <rule pattern="&#34;">
94 <token type="LiteralString"/>
95 <push state="doublequotestring"/>
96 </rule>
97 <rule pattern="&#39;">
98 <token type="LiteralString"/>
99 <push state="singlequotestring"/>
100 </rule>
101 <rule pattern="&#96;">
102 <token type="LiteralString"/>
103 <push state="backtickstring"/>
104 </rule>
105 <rule pattern="(\w+)(\()">
106 <bygroups>
107 <token type="NameFunction"/>
108 <token type="Punctuation"/>
109 </bygroups>
110 </rule>
111 <rule pattern="([\w.!&amp;|()]+)(::)">
112 <bygroups>
113 <token type="NameClass"/>
114 <token type="Punctuation"/>
115 </bygroups>
116 </rule>
117 <rule pattern="(\w+)(:)">
118 <bygroups>
119 <token type="KeywordDeclaration"/>
120 <token type="Punctuation"/>
121 </bygroups>
122 </rule>
123 <rule pattern="@[{(][^)}]+[})]">
124 <token type="NameVariable"/>
125 </rule>
126 <rule pattern="[(){},;]">
127 <token type="Punctuation"/>
128 </rule>
129 <rule pattern="=&gt;">
130 <token type="Operator"/>
131 </rule>
132 <rule pattern="-&gt;">
133 <token type="Operator"/>
134 </rule>
135 <rule pattern="\d+\.\d+">
136 <token type="LiteralNumberFloat"/>
137 </rule>
138 <rule pattern="\d+">
139 <token type="LiteralNumberInteger"/>
140 </rule>
141 <rule pattern="\w+">
142 <token type="NameFunction"/>
143 </rule>
144 <rule pattern="\s+">
145 <token type="Text"/>
146 </rule>
147 </state>
148 <state name="doublequotestring">
149 <rule pattern="\$[{(]">
150 <token type="LiteralStringInterpol"/>
151 <push state="interpol"/>
152 </rule>
153 <rule pattern="\\.">
154 <token type="LiteralStringEscape"/>
155 </rule>
156 <rule pattern="&#34;">
157 <token type="LiteralString"/>
158 <pop depth="1"/>
159 </rule>
160 <rule pattern="\n">
161 <token type="LiteralString"/>
162 </rule>
163 <rule pattern=".">
164 <token type="LiteralString"/>
165 </rule>
166 </state>
167 <state name="singlequotestring">
168 <rule pattern="\$[{(]">
169 <token type="LiteralStringInterpol"/>
170 <push state="interpol"/>
171 </rule>
172 <rule pattern="\\.">
173 <token type="LiteralStringEscape"/>
174 </rule>
175 <rule pattern="&#39;">
176 <token type="LiteralString"/>
177 <pop depth="1"/>
178 </rule>
179 <rule pattern="\n">
180 <token type="LiteralString"/>
181 </rule>
182 <rule pattern=".">
183 <token type="LiteralString"/>
184 </rule>
185 </state>
186 <state name="backtickstring">
187 <rule pattern="\$[{(]">
188 <token type="LiteralStringInterpol"/>
189 <push state="interpol"/>
190 </rule>
191 <rule pattern="\\.">
192 <token type="LiteralStringEscape"/>
193 </rule>
194 <rule pattern="&#96;">
195 <token type="LiteralString"/>
196 <pop depth="1"/>
197 </rule>
198 <rule pattern="\n">
199 <token type="LiteralString"/>
200 </rule>
201 <rule pattern=".">
202 <token type="LiteralString"/>
203 </rule>
204 </state>
205 </rules>
206</lexer>
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml
new file mode 100644
index 0000000..46a84cf
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfstatement.xml
@@ -0,0 +1,92 @@
1<lexer>
2 <config>
3 <name>cfstatement</name>
4 <alias>cfs</alias>
5 <case_insensitive>true</case_insensitive>
6 <not_multiline>true</not_multiline>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="//.*?\n">
11 <token type="CommentSingle"/>
12 </rule>
13 <rule pattern="/\*(?:.|\n)*?\*/">
14 <token type="CommentMultiline"/>
15 </rule>
16 <rule pattern="\+\+|--">
17 <token type="Operator"/>
18 </rule>
19 <rule pattern="[-+*/^&amp;=!]">
20 <token type="Operator"/>
21 </rule>
22 <rule pattern="&lt;=|&gt;=|&lt;|&gt;|==">
23 <token type="Operator"/>
24 </rule>
25 <rule pattern="mod\b">
26 <token type="Operator"/>
27 </rule>
28 <rule pattern="(eq|lt|gt|lte|gte|not|is|and|or)\b">
29 <token type="Operator"/>
30 </rule>
31 <rule pattern="\|\||&amp;&amp;">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="\?">
35 <token type="Operator"/>
36 </rule>
37 <rule pattern="&#34;">
38 <token type="LiteralStringDouble"/>
39 <push state="string"/>
40 </rule>
41 <rule pattern="&#39;.*?&#39;">
42 <token type="LiteralStringSingle"/>
43 </rule>
44 <rule pattern="\d+">
45 <token type="LiteralNumber"/>
46 </rule>
47 <rule pattern="(if|else|len|var|xml|default|break|switch|component|property|function|do|try|catch|in|continue|for|return|while|required|any|array|binary|boolean|component|date|guid|numeric|query|string|struct|uuid|case)\b">
48 <token type="Keyword"/>
49 </rule>
50 <rule pattern="(true|false|null)\b">
51 <token type="KeywordConstant"/>
52 </rule>
53 <rule pattern="(application|session|client|cookie|super|this|variables|arguments)\b">
54 <token type="NameConstant"/>
55 </rule>
56 <rule pattern="([a-z_$][\w.]*)(\s*)(\()">
57 <bygroups>
58 <token type="NameFunction"/>
59 <token type="Text"/>
60 <token type="Punctuation"/>
61 </bygroups>
62 </rule>
63 <rule pattern="[a-z_$][\w.]*">
64 <token type="NameVariable"/>
65 </rule>
66 <rule pattern="[()\[\]{};:,.\\]">
67 <token type="Punctuation"/>
68 </rule>
69 <rule pattern="\s+">
70 <token type="Text"/>
71 </rule>
72 </state>
73 <state name="string">
74 <rule pattern="&#34;&#34;">
75 <token type="LiteralStringDouble"/>
76 </rule>
77 <rule pattern="#.+?#">
78 <token type="LiteralStringInterpol"/>
79 </rule>
80 <rule pattern="[^&#34;#]+">
81 <token type="LiteralStringDouble"/>
82 </rule>
83 <rule pattern="#">
84 <token type="LiteralStringDouble"/>
85 </rule>
86 <rule pattern="&#34;">
87 <token type="LiteralStringDouble"/>
88 <pop depth="1"/>
89 </rule>
90 </state>
91 </rules>
92</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml
new file mode 100644
index 0000000..860439a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/chaiscript.xml
@@ -0,0 +1,134 @@
1<lexer>
2 <config>
3 <name>ChaiScript</name>
4 <alias>chai</alias>
5 <alias>chaiscript</alias>
6 <filename>*.chai</filename>
7 <mime_type>text/x-chaiscript</mime_type>
8 <mime_type>application/x-chaiscript</mime_type>
9 <dot_all>true</dot_all>
10 </config>
11 <rules>
12 <state name="dqstring">
13 <rule pattern="\$\{[^&#34;}]+?\}">
14 <token type="LiteralStringInterpol"/>
15 </rule>
16 <rule pattern="\$">
17 <token type="LiteralStringDouble"/>
18 </rule>
19 <rule pattern="\\\\">
20 <token type="LiteralStringDouble"/>
21 </rule>
22 <rule pattern="\\&#34;">
23 <token type="LiteralStringDouble"/>
24 </rule>
25 <rule pattern="[^\\&#34;$]+">
26 <token type="LiteralStringDouble"/>
27 </rule>
28 <rule pattern="&#34;">
29 <token type="LiteralStringDouble"/>
30 <pop depth="1"/>
31 </rule>
32 </state>
33 <state name="commentsandwhitespace">
34 <rule pattern="\s+">
35 <token type="Text"/>
36 </rule>
37 <rule pattern="//.*?\n">
38 <token type="CommentSingle"/>
39 </rule>
40 <rule pattern="/\*.*?\*/">
41 <token type="CommentMultiline"/>
42 </rule>
43 <rule pattern="^\#.*?\n">
44 <token type="CommentSingle"/>
45 </rule>
46 </state>
47 <state name="slashstartsregex">
48 <rule>
49 <include state="commentsandwhitespace"/>
50 </rule>
51 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
52 <token type="LiteralStringRegex"/>
53 <pop depth="1"/>
54 </rule>
55 <rule pattern="(?=/)">
56 <token type="Text"/>
57 <push state="#pop" state="badregex"/>
58 </rule>
59 <rule>
60 <pop depth="1"/>
61 </rule>
62 </state>
63 <state name="badregex">
64 <rule pattern="\n">
65 <token type="Text"/>
66 <pop depth="1"/>
67 </rule>
68 </state>
69 <state name="root">
70 <rule>
71 <include state="commentsandwhitespace"/>
72 </rule>
73 <rule pattern="\n">
74 <token type="Text"/>
75 </rule>
76 <rule pattern="[^\S\n]+">
77 <token type="Text"/>
78 </rule>
79 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|\.\.(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
80 <token type="Operator"/>
81 <push state="slashstartsregex"/>
82 </rule>
83 <rule pattern="[{(\[;,]">
84 <token type="Punctuation"/>
85 <push state="slashstartsregex"/>
86 </rule>
87 <rule pattern="[})\].]">
88 <token type="Punctuation"/>
89 </rule>
90 <rule pattern="[=+\-*/]">
91 <token type="Operator"/>
92 </rule>
93 <rule pattern="(for|in|while|do|break|return|continue|if|else|throw|try|catch)\b">
94 <token type="Keyword"/>
95 <push state="slashstartsregex"/>
96 </rule>
97 <rule pattern="(var)\b">
98 <token type="KeywordDeclaration"/>
99 <push state="slashstartsregex"/>
100 </rule>
101 <rule pattern="(attr|def|fun)\b">
102 <token type="KeywordReserved"/>
103 </rule>
104 <rule pattern="(true|false)\b">
105 <token type="KeywordConstant"/>
106 </rule>
107 <rule pattern="(eval|throw)\b">
108 <token type="NameBuiltin"/>
109 </rule>
110 <rule pattern="`\S+`">
111 <token type="NameBuiltin"/>
112 </rule>
113 <rule pattern="[$a-zA-Z_]\w*">
114 <token type="NameOther"/>
115 </rule>
116 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
117 <token type="LiteralNumberFloat"/>
118 </rule>
119 <rule pattern="0x[0-9a-fA-F]+">
120 <token type="LiteralNumberHex"/>
121 </rule>
122 <rule pattern="[0-9]+">
123 <token type="LiteralNumberInteger"/>
124 </rule>
125 <rule pattern="&#34;">
126 <token type="LiteralStringDouble"/>
127 <push state="dqstring"/>
128 </rule>
129 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
130 <token type="LiteralStringSingle"/>
131 </rule>
132 </state>
133 </rules>
134</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml
new file mode 100644
index 0000000..ee83a6a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/clojure.xml
@@ -0,0 +1,68 @@
1<lexer>
2 <config>
3 <name>Clojure</name>
4 <alias>clojure</alias>
5 <alias>clj</alias>
6 <filename>*.clj</filename>
7 <mime_type>text/x-clojure</mime_type>
8 <mime_type>application/x-clojure</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern=";.*$">
13 <token type="CommentSingle"/>
14 </rule>
15 <rule pattern="[,\s]+">
16 <token type="Text"/>
17 </rule>
18 <rule pattern="-?\d+\.\d+">
19 <token type="LiteralNumberFloat"/>
20 </rule>
21 <rule pattern="-?\d+">
22 <token type="LiteralNumberInteger"/>
23 </rule>
24 <rule pattern="0x-?[abcdef\d]+">
25 <token type="LiteralNumberHex"/>
26 </rule>
27 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
31 <token type="LiteralStringSymbol"/>
32 </rule>
33 <rule pattern="\\(.|[a-z]+)">
34 <token type="LiteralStringChar"/>
35 </rule>
36 <rule pattern="::?#?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
37 <token type="LiteralStringSymbol"/>
38 </rule>
39 <rule pattern="~@|[`\&#39;#^~&amp;@]">
40 <token type="Operator"/>
41 </rule>
42 <rule pattern="(quote|loop|new|var|let|def|if|do|fn|\.) ">
43 <token type="Keyword"/>
44 </rule>
45 <rule pattern="(definterface|defprotocol|defproject|defstruct|definline|defmethod|defrecord|defmulti|defmacro|defonce|declare|deftype|defn-|def-|defn|ns) ">
46 <token type="KeywordDeclaration"/>
47 </rule>
48 <rule pattern="(clear-agent-errors|construct-proxy|bit-shift-right|get-proxy-class|special-symbol\?|with-local-vars|proxy-mappings|bit-shift-left|sorted-map-by|macroexpand-1|remove-method|create-struct|resultset-seq|inspect-table|inspect-tree|update-proxy|aset-boolean|agent-errors|with-out-str|insert-child|append-child|intersection|insert-right|to-array-2d|rename-keys|println-str|macroexpand|aset-double|select-keys|insert-left|aset-float|aset-short|interleave|re-pattern|make-array|identical\?|take-while|into-array|re-matches|re-matcher|complement|vector-zip|drop-while|when-first|map-invert|sorted-map|ns-resolve|difference|sorted-set|merge-with|ns-publics|split-with|ns-interns|ns-imports|constantly|struct-map|comparator|not-every\?|aset-long|print-str|re-groups|lazy-cons|remove-ns|namespace|await-for|contains\?|array-map|create-ns|make-node|with-meta|with-open|instance\?|ns-refers|aset-byte|aset-char|load-file|read-line|replicate|send-off|aset-int|distinct|not-any\?|take-nth|tree-seq|split-at|to-array|ns-unmap|identity|find-doc|find-var|hash-set|when-not|children|when-let|lazy-cat|hash-map|line-seq|rand-int|keyword\?|file-seq|accessor|replace|bit-not|find-ns|resolve|bit-and|println|binding|locking|vector\?|partial|nthrest|max-key|bit-xor|dotimes|ref-set|xml-seq|boolean|var-get|seq-zip|sort-by|branch\?|butlast|symbol\?|project|min-key|ns-name|comment|string\?|iterate|commute|alength|xml-zip|keyword|newline|re-find|reverse|var-set|prn-str|bit-or|import|re-seq|rights|assert|reduce|remove|gensym|rename|filter|ffirst|if-let|false\?|pr-str|every\?|vector|mapcat|ensure|rfirst|concat|second|double|select|dosync|symbol|subvec|if-not|ns-map|struct|zipper|zipmap|all-ns|dissoc|repeat|assoc|cycle|class|deref|zero\?|slurp|short|dorun|doseq|merge|memfn|agent|rrest|count|parse|right|float|flush|alter|fnseq|frest|doall|print|refer|in-ns|apply|union|await|list\*|proxy|lefts|true\?|index|first|range|left|keys|aset|join|into|last|read|rand|list|load|long|loop|conj|test|vals|pos\?|bean|peek|subs|path|time|find|rest|eval|end\?|edit|map\?|drop|root|aget|rseq|down|doto|meta|send|when|byte|take|seq\?|sync|name|neg\?|some|sort|cast|char|disj|next|not=|nil\?|node|comp|cond|cons|quot|var\?|max|new|rem|set|doc|seq|for|get|ref|inc|int|key|not|prn|min|map|val|nth|dec|pop|and|str|pr|\.\.|up|&gt;=|-&gt;|==|&lt;=|or|=|/|&gt;|-|\*|\+|&lt;) ">
49 <token type="NameBuiltin"/>
50 </rule>
51 <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
52 <token type="NameFunction"/>
53 </rule>
54 <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
55 <token type="NameVariable"/>
56 </rule>
57 <rule pattern="(\[|\])">
58 <token type="Punctuation"/>
59 </rule>
60 <rule pattern="(\{|\})">
61 <token type="Punctuation"/>
62 </rule>
63 <rule pattern="(\(|\))">
64 <token type="Punctuation"/>
65 </rule>
66 </state>
67 </rules>
68</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml
new file mode 100644
index 0000000..b041cfd
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cmake.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>CMake</name>
4 <alias>cmake</alias>
5 <filename>*.cmake</filename>
6 <filename>CMakeLists.txt</filename>
7 <mime_type>text/x-cmake</mime_type>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="\b(\w+)([ \t]*)(\()">
12 <bygroups>
13 <token type="NameBuiltin"/>
14 <token type="Text"/>
15 <token type="Punctuation"/>
16 </bygroups>
17 <push state="args"/>
18 </rule>
19 <rule>
20 <include state="keywords"/>
21 </rule>
22 <rule>
23 <include state="ws"/>
24 </rule>
25 </state>
26 <state name="args">
27 <rule pattern="\(">
28 <token type="Punctuation"/>
29 <push/>
30 </rule>
31 <rule pattern="\)">
32 <token type="Punctuation"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="(\$\{)(.+?)(\})">
36 <bygroups>
37 <token type="Operator"/>
38 <token type="NameVariable"/>
39 <token type="Operator"/>
40 </bygroups>
41 </rule>
42 <rule pattern="(\$ENV\{)(.+?)(\})">
43 <bygroups>
44 <token type="Operator"/>
45 <token type="NameVariable"/>
46 <token type="Operator"/>
47 </bygroups>
48 </rule>
49 <rule pattern="(\$&lt;)(.+?)(&gt;)">
50 <bygroups>
51 <token type="Operator"/>
52 <token type="NameVariable"/>
53 <token type="Operator"/>
54 </bygroups>
55 </rule>
56 <rule pattern="(?s)&#34;.*?&#34;">
57 <token type="LiteralStringDouble"/>
58 </rule>
59 <rule pattern="\\\S+">
60 <token type="LiteralString"/>
61 </rule>
62 <rule pattern="[^)$&#34;# \t\n]+">
63 <token type="LiteralString"/>
64 </rule>
65 <rule pattern="\n">
66 <token type="Text"/>
67 </rule>
68 <rule>
69 <include state="keywords"/>
70 </rule>
71 <rule>
72 <include state="ws"/>
73 </rule>
74 </state>
75 <state name="string"/>
76 <state name="keywords">
77 <rule pattern="\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\b">
78 <token type="Keyword"/>
79 </rule>
80 </state>
81 <state name="ws">
82 <rule pattern="[ \t]+">
83 <token type="Text"/>
84 </rule>
85 <rule pattern="#.*\n">
86 <token type="Comment"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml
new file mode 100644
index 0000000..a8a8029
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cobol.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>COBOL</name>
4 <alias>cobol</alias>
5 <filename>*.cob</filename>
6 <filename>*.COB</filename>
7 <filename>*.cpy</filename>
8 <filename>*.CPY</filename>
9 <mime_type>text/x-cobol</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="strings">
14 <rule pattern="&#34;[^&#34;\n]*(&#34;|\n)">
15 <token type="LiteralStringDouble"/>
16 </rule>
17 <rule pattern="&#39;[^&#39;\n]*(&#39;|\n)">
18 <token type="LiteralStringSingle"/>
19 </rule>
20 </state>
21 <state name="nums">
22 <rule pattern="\d+(\s*|\.$|$)">
23 <token type="LiteralNumberInteger"/>
24 </rule>
25 <rule pattern="[+-]?\d*\.\d+(E[-+]?\d+)?">
26 <token type="LiteralNumberFloat"/>
27 </rule>
28 <rule pattern="[+-]?\d+\.\d*(E[-+]?\d+)?">
29 <token type="LiteralNumberFloat"/>
30 </rule>
31 </state>
32 <state name="root">
33 <rule>
34 <include state="comment"/>
35 </rule>
36 <rule>
37 <include state="strings"/>
38 </rule>
39 <rule>
40 <include state="core"/>
41 </rule>
42 <rule>
43 <include state="nums"/>
44 </rule>
45 <rule pattern="[a-z0-9]([\w\-]*[a-z0-9]+)?">
46 <token type="NameVariable"/>
47 </rule>
48 <rule pattern="[ \t]+">
49 <token type="Text"/>
50 </rule>
51 </state>
52 <state name="comment">
53 <rule pattern="(^.{6}[*/].*\n|^.{6}|\*&gt;.*\n)">
54 <token type="Comment"/>
55 </rule>
56 </state>
57 <state name="core">
58 <rule pattern="(^|(?&lt;=[^\w\-]))(ALL\s+)?((ZEROES)|(HIGH-VALUE|LOW-VALUE|QUOTE|SPACE|ZERO)(S)?)\s*($|(?=[^\w\-]))">
59 <token type="NameConstant"/>
60 </rule>
61 <rule pattern="(^|(?&lt;=[^\w\-]))(WORKING-STORAGE|IDENTIFICATION|LOCAL-STORAGE|CONFIGURATION|END-EVALUATE|FILE-CONTROL|END-UNSTRING|END-SUBTRACT|END-MULTIPLY|INPUT-OUTPUT|END-PERFORM|END-DISPLAY|END-OF-PAGE|END-COMPUTE|ENVIRONMENT|I-O-CONTROL|END-REWRITE|END-RETURN|INITIALIZE|END-ACCEPT|END-DIVIDE|PROGRAM-ID|END-STRING|END-DELETE|END-SEARCH|END-WRITE|PROCEDURE|END-START|TERMINATE|END-READ|MULTIPLY|CONTINUE|SUPPRESS|SUBTRACT|INITIATE|UNSTRING|DIVISION|VALIDATE|END-CALL|ALLOCATE|GENERATE|EVALUATE|PERFORM|FOREVER|LINKAGE|END-ADD|REWRITE|INSPECT|SECTION|RELEASE|COMPUTE|DISPLAY|END-IF|GOBACK|INVOKE|CANCEL|UNLOCK|SCREEN|SEARCH|DELETE|STRING|DIVIDE|ACCEPT|RETURN|RESUME|START|RAISE|MERGE|CLOSE|WRITE|FILE|STOP|FREE|READ|ELSE|THEN|SORT|EXIT|OPEN|CALL|MOVE|DATA|END|SET|ADD|USE|GO|FD|SD|IF)\s*($|(?=[^\w\-]))">
62 <token type="KeywordReserved"/>
63 </rule>
64 <rule pattern="(^|(?&lt;=[^\w\-]))(ALPHANUMERIC-EDITED|PROCEDURE-POINTER|ENVIRONMENT-VALUE|ENVIRONMENT-NAME|ALPHABETIC-UPPER|FOREGROUND-COLOR|ALPHABETIC-LOWER|BACKGROUND-COLOR|OBJECT-COMPUTER|SOURCE-COMPUTER|PROGRAM-POINTER|ARGUMENT-NUMBER|NATIONAL-EDITED|NUMERIC-EDITED|LINAGE-COUNTER|UNSIGNED-SHORT|ARGUMENT-VALUE|PACKED-DECIMAL|SPECIAL-NAMES|AUTOTERMINATE|DECIMAL-POINT|CORRESPONDING|UNSIGNED-LONG|SEGMENT-LIMIT|REVERSE-VIDEO|SIGNED-SHORT|SYNCHRONIZED|ALPHANUMERIC|ALTERNATEANY|UNSIGNED-INT|ORGANIZATION|DECLARATIVES|COMMAND-LINE|FUNCTION-ID|SIGNED-LONG|INITIALIZED|FLOAT-SHORT|BYTE-LENGTH|DAY-OF-WEEK|DESCENDING|CHARACTERS|SEQUENTIAL|REPOSITORY|SIGNED-INT|SORT-MERGE|DUPLICATES|STANDARD-1|STANDARD-2|CONVERTING|FLOAT-LONG|ALPHABETIC|PROCEDURES|RECORDING|HIGHLIGHT|ADVANCING|RETURNING|REPLACING|UNDERLINE|TRANSFORM|REMAINDER|INTRINSIC|JUSTIFIED|REFERENCE|REDEFINES|EXCLUSIVE|RECURSIVE|EXCEPTION|COLLATING|ASCENDING|REPORTING|AUTO-SKIP|DEBUGGING|AUTOMATIC|CHARACTER|PARAGRAPH|DELIMITED|DELIMITER|DEPENDING|PREVIOUS|POSITIVE|POSITION|CHAINING|STANDARD|FUNCTION|OVERFLOW|PRINTING|CODE-SET|SEPARATE|OPTIONAL|SYMBOLIC|SEQUENCE|NEGATIVE|TALLYING|NATIONAL|REQUIRED|CURRENCY|MULTIPLE|TRAILING|LOWLIGHT|OVERLINE|SENTENCE|RELATIVE|ROLLBACK|CONTROLS|UNSIGNED|INDICATE|IGNORING|ALPHABET|CONTAINS|CONSTANT|EXTERNAL|YYYYMMDD|FILE-ID|CONTROL|RENAMES|REMOVAL|HEADING|YYYYDDD|RESERVE|VARYING|RECORDS|REPORTS|COLUMNS|PROGRAM|INDEXED|FOOTING|INITIAL|PROCEED|ROUNDED|DEFAULT|PRESENT|INVALID|POINTER|SHARING|PADDING|DYNAMIC|OMITTED|ADDRESS|LEADING|CONTENT|NUMBERS|THROUGH|NUMERIC|PRINTER|SELECT|COMMON|REPORT|LOCALE|ACCESS|LINAGE|MANUAL|MEMORY|LIMITS|FILLER|EXTEND|ESCAPE|GIVING|NATIVE|GLOBAL|COMMIT|ASSIGN|STATUS|OUTPUT|NUMBER|LENGTH|REWIND|CURSOR|BEFORE|OCCURS|SOURCE|IGNORE|VALUES|RECORD|BOTTOM|SIGNED|RANDOM|QUOTES|PROMPT|SCROLL|EBCDIC|FORMAT|SECURE|DETAIL|UPDATE|COLUMN|TIMES|USAGE|CLASS|FINAL|FIRST|USING|CYCLE|UNTIL|MINUS|INPUT|FIXED|INDEX|VALUE|OTHER|QUOTE|ENTRY|ORDER|RIGHT|BLOCK|LABEL|BLINK|BASED|AFTER|NULLS|COUNT|AREAS|WORDS|GROUP|ERASE|LIMIT|LINES|ALTER|COMMA|ERROR|BLANK|THRU|CORR|REEL|FROM|WITH|DATE|WHEN|CODE|SAME|WAIT|COPY|DISK|PLUS|COLS|INTO|UPON|DOWN|PAGE|SIGN|JUST|ONLY|LAST|ALSO|SIZE|UNIT|LINE|BELL|TYPE|BEEP|LOCK|AUTO|NULL|AREA|MODE|SYNC|TIME|NEXT|TAPE|TEST|FULL|LEFT|EOL|CRT|I-O|TOP|DAY|EOS|EOP|FOR|ARE|OFF|ALL|COL|SUM|KEY|RUN|UP|ON|IS|IN|BY|OF|ID|DE|AT|RD|TO|NO|AS)\s*($|(?=[^\w\-]))">
65 <token type="KeywordPseudo"/>
66 </rule>
67 <rule pattern="(^|(?&lt;=[^\w\-]))(REPRESENTS-NOT-A-NUMBER|FUNCTION-POINTER|FLOAT-DECIMAL-34|FLOAT-DECIMAL-16|ENTRY-CONVENTION|EXCEPTION-OBJECT|OBJECT-REFERENCE|FLOAT-BINARY-34|FLOAT-BINARY-16|VALIDATE-STATUS|FLOAT-EXTENDED|CLASSIFICATION|FLOAT-BINARY-7|SYSTEM-DEFAULT|COMMUNICATION|PAGE-COUNTER|USER-DEFAULT|LINE-COUNTER|ACTIVE-CLASS|DATA-POINTER|INTERFACE-ID|DESTINATION|GROUP-USAGE|LC_MESSAGES|SUB-QUEUE-3|SUB-QUEUE-2|SUB-QUEUE-1|END-RECEIVE|LC_MONETARY|VAL-STATUS|LC_NUMERIC|IMPLEMENTS|LC_COLLATE|ARITHMETIC|STATEMENT|METHOD-ID|INTERFACE|ATTRIBUTE|PROTOTYPE|CONDITION|UNIVERSAL|LC_CTYPE|VALIDATE|PROPERTY|TERMINAL|INFINITY|INHERITS|CLASS-ID|RELATION|OVERRIDE|ANYCASE|DISABLE|ALIGNED|REPLACE|RAISING|EXPANDS|FACTORY|TYPEDEF|MESSAGE|RECEIVE|BOOLEAN|SECONDS|SOURCES|SEGMENT|LC_TIME|OPTIONS|METHOD|UTF-16|OBJECT|NORMAL|NESTED|CENTER|LC_ALL|RESUME|INVOKE|ENABLE|STRONG|FORMAT|SYMBOL|B-XOR|QUEUE|RESET|PURGE|RETRY|B-AND|VALID|B-NOT|UTF-8|SUPER|RAISE|UCS-4|TABLE|CHAIN|NONE|B-OR|STEP|SEND|SELF|TEXT|BIT|EMI|ESI|EGI|GET|CD|CF|EC|EO|PF|PH|RH|RF|CH)\s*($|(?=[^\w\-]))">
68 <token type="Error"/>
69 </rule>
70 <rule pattern="(^|(?&lt;=[^\w\-]))(PIC\s+.+?(?=(\s|\.\s))|PICTURE\s+.+?(?=(\s|\.\s))|(COMPUTATIONAL)(-[1-5X])?|(COMP)(-[1-5X])?|BINARY-C-LONG|BINARY-CHAR|BINARY-DOUBLE|BINARY-LONG|BINARY-SHORT|BINARY)\s*($|(?=[^\w\-]))">
71 <token type="KeywordType"/>
72 </rule>
73 <rule pattern="(\*\*|\*|\+|-|/|&lt;=|&gt;=|&lt;|&gt;|==|/=|=)">
74 <token type="Operator"/>
75 </rule>
76 <rule pattern="([(),;:&amp;%.])">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="(^|(?&lt;=[^\w\-]))(ABS|ACOS|ANNUITY|ASIN|ATAN|BYTE-LENGTH|CHAR|COMBINED-DATETIME|CONCATENATE|COS|CURRENT-DATE|DATE-OF-INTEGER|DATE-TO-YYYYMMDD|DAY-OF-INTEGER|DAY-TO-YYYYDDD|EXCEPTION-(?:FILE|LOCATION|STATEMENT|STATUS)|EXP10|EXP|E|FACTORIAL|FRACTION-PART|INTEGER-OF-(?:DATE|DAY|PART)|INTEGER|LENGTH|LOCALE-(?:DATE|TIME(?:-FROM-SECONDS)?)|LOG(?:10)?|LOWER-CASE|MAX|MEAN|MEDIAN|MIDRANGE|MIN|MOD|NUMVAL(?:-C)?|ORD(?:-MAX|-MIN)?|PI|PRESENT-VALUE|RANDOM|RANGE|REM|REVERSE|SECONDS-FROM-FORMATTED-TIME|SECONDS-PAST-MIDNIGHT|SIGN|SIN|SQRT|STANDARD-DEVIATION|STORED-CHAR-LENGTH|SUBSTITUTE(?:-CASE)?|SUM|TAN|TEST-DATE-YYYYMMDD|TEST-DAY-YYYYDDD|TRIM|UPPER-CASE|VARIANCE|WHEN-COMPILED|YEAR-TO-YYYY)\s*($|(?=[^\w\-]))">
80 <token type="NameFunction"/>
81 </rule>
82 <rule pattern="(^|(?&lt;=[^\w\-]))(true|false)\s*($|(?=[^\w\-]))">
83 <token type="NameBuiltin"/>
84 </rule>
85 <rule pattern="(^|(?&lt;=[^\w\-]))(equal|equals|ne|lt|le|gt|ge|greater|less|than|not|and|or)\s*($|(?=[^\w\-]))">
86 <token type="OperatorWord"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml
new file mode 100644
index 0000000..e29722f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coffeescript.xml
@@ -0,0 +1,210 @@
1<lexer>
2 <config>
3 <name>CoffeeScript</name>
4 <alias>coffee-script</alias>
5 <alias>coffeescript</alias>
6 <alias>coffee</alias>
7 <filename>*.coffee</filename>
8 <mime_type>text/coffeescript</mime_type>
9 <dot_all>true</dot_all>
10 <not_multiline>true</not_multiline>
11 </config>
12 <rules>
13 <state name="commentsandwhitespace">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="###[^#].*?###">
18 <token type="CommentMultiline"/>
19 </rule>
20 <rule pattern="#(?!##[^#]).*?\n">
21 <token type="CommentSingle"/>
22 </rule>
23 </state>
24 <state name="multilineregex">
25 <rule pattern="[^/#]+">
26 <token type="LiteralStringRegex"/>
27 </rule>
28 <rule pattern="///([gim]+\b|\B)">
29 <token type="LiteralStringRegex"/>
30 <pop depth="1"/>
31 </rule>
32 <rule pattern="#\{">
33 <token type="LiteralStringInterpol"/>
34 <push state="interpoling_string"/>
35 </rule>
36 <rule pattern="[/#]">
37 <token type="LiteralStringRegex"/>
38 </rule>
39 </state>
40 <state name="slashstartsregex">
41 <rule>
42 <include state="commentsandwhitespace"/>
43 </rule>
44 <rule pattern="///">
45 <token type="LiteralStringRegex"/>
46 <push state="#pop" state="multilineregex"/>
47 </rule>
48 <rule pattern="/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
49 <token type="LiteralStringRegex"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="/">
53 <token type="Operator"/>
54 </rule>
55 <rule>
56 <pop depth="1"/>
57 </rule>
58 </state>
59 <state name="tsqs">
60 <rule pattern="&#39;&#39;&#39;">
61 <token type="LiteralString"/>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern="#|\\.|\&#39;|&#34;">
65 <token type="LiteralString"/>
66 </rule>
67 <rule>
68 <include state="strings"/>
69 </rule>
70 </state>
71 <state name="dqs">
72 <rule pattern="&#34;">
73 <token type="LiteralString"/>
74 <pop depth="1"/>
75 </rule>
76 <rule pattern="\\.|\&#39;">
77 <token type="LiteralString"/>
78 </rule>
79 <rule pattern="#\{">
80 <token type="LiteralStringInterpol"/>
81 <push state="interpoling_string"/>
82 </rule>
83 <rule pattern="#">
84 <token type="LiteralString"/>
85 </rule>
86 <rule>
87 <include state="strings"/>
88 </rule>
89 </state>
90 <state name="sqs">
91 <rule pattern="&#39;">
92 <token type="LiteralString"/>
93 <pop depth="1"/>
94 </rule>
95 <rule pattern="#|\\.|&#34;">
96 <token type="LiteralString"/>
97 </rule>
98 <rule>
99 <include state="strings"/>
100 </rule>
101 </state>
102 <state name="tdqs">
103 <rule pattern="&#34;&#34;&#34;">
104 <token type="LiteralString"/>
105 <pop depth="1"/>
106 </rule>
107 <rule pattern="\\.|\&#39;|&#34;">
108 <token type="LiteralString"/>
109 </rule>
110 <rule pattern="#\{">
111 <token type="LiteralStringInterpol"/>
112 <push state="interpoling_string"/>
113 </rule>
114 <rule pattern="#">
115 <token type="LiteralString"/>
116 </rule>
117 <rule>
118 <include state="strings"/>
119 </rule>
120 </state>
121 <state name="root">
122 <rule>
123 <include state="commentsandwhitespace"/>
124 </rule>
125 <rule pattern="^(?=\s|/)">
126 <token type="Text"/>
127 <push state="slashstartsregex"/>
128 </rule>
129 <rule pattern="\+\+|~|&amp;&amp;|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?(?!&gt;)|!=?|=(?!&gt;)|-(?!&gt;)|[&lt;&gt;+*`%&amp;\|\^/])=?">
130 <token type="Operator"/>
131 <push state="slashstartsregex"/>
132 </rule>
133 <rule pattern="(?:\([^()]*\))?\s*[=-]&gt;">
134 <token type="NameFunction"/>
135 <push state="slashstartsregex"/>
136 </rule>
137 <rule pattern="[{(\[;,]">
138 <token type="Punctuation"/>
139 <push state="slashstartsregex"/>
140 </rule>
141 <rule pattern="[})\].]">
142 <token type="Punctuation"/>
143 </rule>
144 <rule pattern="(?&lt;![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\b">
145 <token type="Keyword"/>
146 <push state="slashstartsregex"/>
147 </rule>
148 <rule pattern="(?&lt;![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\b">
149 <token type="KeywordConstant"/>
150 </rule>
151 <rule pattern="(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">
152 <token type="NameBuiltin"/>
153 </rule>
154 <rule pattern="[$a-zA-Z_][\w.:$]*\s*[:=]\s">
155 <token type="NameVariable"/>
156 <push state="slashstartsregex"/>
157 </rule>
158 <rule pattern="@[$a-zA-Z_][\w.:$]*\s*[:=]\s">
159 <token type="NameVariableInstance"/>
160 <push state="slashstartsregex"/>
161 </rule>
162 <rule pattern="@">
163 <token type="NameOther"/>
164 <push state="slashstartsregex"/>
165 </rule>
166 <rule pattern="@?[$a-zA-Z_][\w$]*">
167 <token type="NameOther"/>
168 </rule>
169 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
170 <token type="LiteralNumberFloat"/>
171 </rule>
172 <rule pattern="0x[0-9a-fA-F]+">
173 <token type="LiteralNumberHex"/>
174 </rule>
175 <rule pattern="[0-9]+">
176 <token type="LiteralNumberInteger"/>
177 </rule>
178 <rule pattern="&#34;&#34;&#34;">
179 <token type="LiteralString"/>
180 <push state="tdqs"/>
181 </rule>
182 <rule pattern="&#39;&#39;&#39;">
183 <token type="LiteralString"/>
184 <push state="tsqs"/>
185 </rule>
186 <rule pattern="&#34;">
187 <token type="LiteralString"/>
188 <push state="dqs"/>
189 </rule>
190 <rule pattern="&#39;">
191 <token type="LiteralString"/>
192 <push state="sqs"/>
193 </rule>
194 </state>
195 <state name="interpoling_string">
196 <rule pattern="\}">
197 <token type="LiteralStringInterpol"/>
198 <pop depth="1"/>
199 </rule>
200 <rule>
201 <include state="root"/>
202 </rule>
203 </state>
204 <state name="strings">
205 <rule pattern="[^#\\\&#39;&#34;]+">
206 <token type="LiteralString"/>
207 </rule>
208 </state>
209 </rules>
210</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml
new file mode 100644
index 0000000..0fb9a7a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/common_lisp.xml
@@ -0,0 +1,184 @@
1<lexer>
2 <config>
3 <name>Common Lisp</name>
4 <alias>common-lisp</alias>
5 <alias>cl</alias>
6 <alias>lisp</alias>
7 <filename>*.cl</filename>
8 <filename>*.lisp</filename>
9 <mime_type>text/x-common-lisp</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="body">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern=";.*$">
18 <token type="CommentSingle"/>
19 </rule>
20 <rule pattern="#\|">
21 <token type="CommentMultiline"/>
22 <push state="multiline-comment"/>
23 </rule>
24 <rule pattern="#\d*Y.*$">
25 <token type="CommentSpecial"/>
26 </rule>
27 <rule pattern="&#34;(\\.|\\\n|[^&#34;\\])*&#34;">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern=":(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
31 <token type="LiteralStringSymbol"/>
32 </rule>
33 <rule pattern="::(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
34 <token type="LiteralStringSymbol"/>
35 </rule>
36 <rule pattern=":#(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
37 <token type="LiteralStringSymbol"/>
38 </rule>
39 <rule pattern="&#39;(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
40 <token type="LiteralStringSymbol"/>
41 </rule>
42 <rule pattern="&#39;">
43 <token type="Operator"/>
44 </rule>
45 <rule pattern="`">
46 <token type="Operator"/>
47 </rule>
48 <rule pattern="[-+]?\d+\.?(?=[ &#34;()\&#39;\n,;`])">
49 <token type="LiteralNumberInteger"/>
50 </rule>
51 <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\&#39;\n,;`])">
52 <token type="LiteralNumber"/>
53 </rule>
54 <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\&#39;\n,;`])">
55 <token type="LiteralNumberFloat"/>
56 </rule>
57 <rule pattern="#\\.(?=[ &#34;()\&#39;\n,;`])">
58 <token type="LiteralStringChar"/>
59 </rule>
60 <rule pattern="#\\(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
61 <token type="LiteralStringChar"/>
62 </rule>
63 <rule pattern="#\(">
64 <token type="Operator"/>
65 <push state="body"/>
66 </rule>
67 <rule pattern="#\d*\*[01]*">
68 <token type="LiteralOther"/>
69 </rule>
70 <rule pattern="#:(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
71 <token type="LiteralStringSymbol"/>
72 </rule>
73 <rule pattern="#[.,]">
74 <token type="Operator"/>
75 </rule>
76 <rule pattern="#\&#39;">
77 <token type="NameFunction"/>
78 </rule>
79 <rule pattern="#b[+-]?[01]+(/[01]+)?">
80 <token type="LiteralNumberBin"/>
81 </rule>
82 <rule pattern="#o[+-]?[0-7]+(/[0-7]+)?">
83 <token type="LiteralNumberOct"/>
84 </rule>
85 <rule pattern="#x[+-]?[0-9a-f]+(/[0-9a-f]+)?">
86 <token type="LiteralNumberHex"/>
87 </rule>
88 <rule pattern="#\d+r[+-]?[0-9a-z]+(/[0-9a-z]+)?">
89 <token type="LiteralNumber"/>
90 </rule>
91 <rule pattern="(#c)(\()">
92 <bygroups>
93 <token type="LiteralNumber"/>
94 <token type="Punctuation"/>
95 </bygroups>
96 <push state="body"/>
97 </rule>
98 <rule pattern="(#\d+a)(\()">
99 <bygroups>
100 <token type="LiteralOther"/>
101 <token type="Punctuation"/>
102 </bygroups>
103 <push state="body"/>
104 </rule>
105 <rule pattern="(#s)(\()">
106 <bygroups>
107 <token type="LiteralOther"/>
108 <token type="Punctuation"/>
109 </bygroups>
110 <push state="body"/>
111 </rule>
112 <rule pattern="#p?&#34;(\\.|[^&#34;])*&#34;">
113 <token type="LiteralOther"/>
114 </rule>
115 <rule pattern="#\d+=">
116 <token type="Operator"/>
117 </rule>
118 <rule pattern="#\d+#">
119 <token type="Operator"/>
120 </rule>
121 <rule pattern="#+nil(?=[ &#34;()\&#39;\n,;`])\s*\(">
122 <token type="CommentPreproc"/>
123 <push state="commented-form"/>
124 </rule>
125 <rule pattern="#[+-]">
126 <token type="Operator"/>
127 </rule>
128 <rule pattern="(,@|,|\.)">
129 <token type="Operator"/>
130 </rule>
131 <rule pattern="(t|nil)(?=[ &#34;()\&#39;\n,;`])">
132 <token type="NameConstant"/>
133 </rule>
134 <rule pattern="\*(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)\*">
135 <token type="NameVariableGlobal"/>
136 </rule>
137 <rule pattern="(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
138 <token type="NameVariable"/>
139 </rule>
140 <rule pattern="\(">
141 <token type="Punctuation"/>
142 <push state="body"/>
143 </rule>
144 <rule pattern="\)">
145 <token type="Punctuation"/>
146 <pop depth="1"/>
147 </rule>
148 </state>
149 <state name="root">
150 <rule>
151 <push state="body"/>
152 </rule>
153 </state>
154 <state name="multiline-comment">
155 <rule pattern="#\|">
156 <token type="CommentMultiline"/>
157 <push/>
158 </rule>
159 <rule pattern="\|#">
160 <token type="CommentMultiline"/>
161 <pop depth="1"/>
162 </rule>
163 <rule pattern="[^|#]+">
164 <token type="CommentMultiline"/>
165 </rule>
166 <rule pattern="[|#]">
167 <token type="CommentMultiline"/>
168 </rule>
169 </state>
170 <state name="commented-form">
171 <rule pattern="\(">
172 <token type="CommentPreproc"/>
173 <push/>
174 </rule>
175 <rule pattern="\)">
176 <token type="CommentPreproc"/>
177 <pop depth="1"/>
178 </rule>
179 <rule pattern="[^()]+">
180 <token type="CommentPreproc"/>
181 </rule>
182 </state>
183 </rules>
184</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml
new file mode 100644
index 0000000..62f64ff
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/coq.xml
@@ -0,0 +1,136 @@
1<lexer>
2 <config>
3 <name>Coq</name>
4 <alias>coq</alias>
5 <filename>*.v</filename>
6 <mime_type>text/x-coq</mime_type>
7 </config>
8 <rules>
9 <state name="string">
10 <rule pattern="[^&#34;]+">
11 <token type="LiteralStringDouble"/>
12 </rule>
13 <rule pattern="&#34;&#34;">
14 <token type="LiteralStringDouble"/>
15 </rule>
16 <rule pattern="&#34;">
17 <token type="LiteralStringDouble"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="dotted">
22 <rule pattern="\s+">
23 <token type="Text"/>
24 </rule>
25 <rule pattern="\.">
26 <token type="Punctuation"/>
27 </rule>
28 <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
29 <token type="NameNamespace"/>
30 </rule>
31 <rule pattern="[A-Z][\w\&#39;]*">
32 <token type="NameClass"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="[a-z][a-z0-9_\&#39;]*">
36 <token type="Name"/>
37 <pop depth="1"/>
38 </rule>
39 <rule>
40 <pop depth="1"/>
41 </rule>
42 </state>
43 <state name="root">
44 <rule pattern="\s+">
45 <token type="Text"/>
46 </rule>
47 <rule pattern="false|true|\(\)|\[\]">
48 <token type="NameBuiltinPseudo"/>
49 </rule>
50 <rule pattern="\(\*">
51 <token type="Comment"/>
52 <push state="comment"/>
53 </rule>
54 <rule pattern="\b(Projections|Monomorphic|Polymorphic|Proposition|CoInductive|Hypothesis|CoFixpoint|Contextual|Definition|Parameters|Hypotheses|Structure|Inductive|Corollary|Implicits|Parameter|Variables|Arguments|Canonical|Printing|Coercion|Reserved|Universe|Notation|Instance|Fixpoint|Variable|Morphism|Relation|Existing|Implicit|Example|Theorem|Delimit|Defined|Rewrite|outside|Require|Resolve|Section|Context|Prenex|Strict|Module|Import|Export|Global|inside|Remark|Tactic|Search|Record|Scope|Unset|Check|Local|Close|Class|Graph|Proof|Lemma|Print|Axiom|Show|Goal|Open|Fact|Hint|Bind|Ltac|Save|View|Let|Set|All|End|Qed)\b">
55 <token type="KeywordNamespace"/>
56 </rule>
57 <rule pattern="\b(exists2|nosimpl|struct|exists|return|forall|match|cofix|then|with|else|for|fix|let|fun|end|is|of|if|in|as)\b">
58 <token type="Keyword"/>
59 </rule>
60 <rule pattern="\b(Type|Prop)\b">
61 <token type="KeywordType"/>
62 </rule>
63 <rule pattern="\b(native_compute|setoid_rewrite|etransitivity|econstructor|transitivity|autorewrite|constructor|cutrewrite|vm_compute|bool_congr|generalize|inversion|induction|injection|nat_congr|intuition|destruct|suffices|erewrite|symmetry|nat_norm|replace|rewrite|compute|pattern|trivial|without|assert|unfold|change|eapply|intros|unlock|revert|rename|refine|eauto|tauto|after|right|congr|split|field|simpl|intro|clear|apply|using|subst|case|left|suff|loss|wlog|have|fold|ring|move|lazy|elim|pose|auto|red|cbv|hnf|cut|set)\b">
64 <token type="Keyword"/>
65 </rule>
66 <rule pattern="\b(contradiction|discriminate|reflexivity|assumption|congruence|romega|omega|exact|solve|tauto|done|by)\b">
67 <token type="KeywordPseudo"/>
68 </rule>
69 <rule pattern="\b(repeat|first|idtac|last|try|do)\b">
70 <token type="KeywordReserved"/>
71 </rule>
72 <rule pattern="\b([A-Z][\w\&#39;]*)">
73 <token type="Name"/>
74 </rule>
75 <rule pattern="(λ|Π|\|\}|\{\||\\/|/\\|=&gt;|~|\}|\|]|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-&gt;|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.|\.|-&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
76 <token type="Operator"/>
77 </rule>
78 <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
79 <token type="Operator"/>
80 </rule>
81 <rule pattern="\b(unit|nat|bool|string|ascii|list)\b">
82 <token type="KeywordType"/>
83 </rule>
84 <rule pattern="[^\W\d][\w&#39;]*">
85 <token type="Name"/>
86 </rule>
87 <rule pattern="\d[\d_]*">
88 <token type="LiteralNumberInteger"/>
89 </rule>
90 <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
91 <token type="LiteralNumberHex"/>
92 </rule>
93 <rule pattern="0[oO][0-7][0-7_]*">
94 <token type="LiteralNumberOct"/>
95 </rule>
96 <rule pattern="0[bB][01][01_]*">
97 <token type="LiteralNumberBin"/>
98 </rule>
99 <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
100 <token type="LiteralNumberFloat"/>
101 </rule>
102 <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
103 <token type="LiteralStringChar"/>
104 </rule>
105 <rule pattern="&#39;.&#39;">
106 <token type="LiteralStringChar"/>
107 </rule>
108 <rule pattern="&#39;">
109 <token type="Keyword"/>
110 </rule>
111 <rule pattern="&#34;">
112 <token type="LiteralStringDouble"/>
113 <push state="string"/>
114 </rule>
115 <rule pattern="[~?][a-z][\w\&#39;]*:">
116 <token type="Name"/>
117 </rule>
118 </state>
119 <state name="comment">
120 <rule pattern="[^(*)]+">
121 <token type="Comment"/>
122 </rule>
123 <rule pattern="\(\*">
124 <token type="Comment"/>
125 <push/>
126 </rule>
127 <rule pattern="\*\)">
128 <token type="Comment"/>
129 <pop depth="1"/>
130 </rule>
131 <rule pattern="[(*)]">
132 <token type="Comment"/>
133 </rule>
134 </state>
135 </rules>
136</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml
new file mode 100644
index 0000000..94853db
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/crystal.xml
@@ -0,0 +1,762 @@
1<lexer>
2 <config>
3 <name>Crystal</name>
4 <alias>cr</alias>
5 <alias>crystal</alias>
6 <filename>*.cr</filename>
7 <mime_type>text/x-crystal</mime_type>
8 <dot_all>true</dot_all>
9 </config>
10 <rules>
11 <state name="pa-intp-string">
12 <rule pattern="\\[\(]">
13 <token type="LiteralStringOther"/>
14 </rule>
15 <rule pattern="\(">
16 <token type="LiteralStringOther"/>
17 <push/>
18 </rule>
19 <rule pattern="\)">
20 <token type="LiteralStringOther"/>
21 <pop depth="1"/>
22 </rule>
23 <rule>
24 <include state="string-intp-escaped"/>
25 </rule>
26 <rule pattern="[\\#()]">
27 <token type="LiteralStringOther"/>
28 </rule>
29 <rule pattern="[^\\#()]+">
30 <token type="LiteralStringOther"/>
31 </rule>
32 </state>
33 <state name="ab-regex">
34 <rule pattern="\\[\\&lt;&gt;]">
35 <token type="LiteralStringRegex"/>
36 </rule>
37 <rule pattern="&lt;">
38 <token type="LiteralStringRegex"/>
39 <push/>
40 </rule>
41 <rule pattern="&gt;[imsx]*">
42 <token type="LiteralStringRegex"/>
43 <pop depth="1"/>
44 </rule>
45 <rule>
46 <include state="string-intp"/>
47 </rule>
48 <rule pattern="[\\#&lt;&gt;]">
49 <token type="LiteralStringRegex"/>
50 </rule>
51 <rule pattern="[^\\#&lt;&gt;]+">
52 <token type="LiteralStringRegex"/>
53 </rule>
54 </state>
55 <state name="cb-regex">
56 <rule pattern="\\[\\{}]">
57 <token type="LiteralStringRegex"/>
58 </rule>
59 <rule pattern="\{">
60 <token type="LiteralStringRegex"/>
61 <push/>
62 </rule>
63 <rule pattern="\}[imsx]*">
64 <token type="LiteralStringRegex"/>
65 <pop depth="1"/>
66 </rule>
67 <rule>
68 <include state="string-intp"/>
69 </rule>
70 <rule pattern="[\\#{}]">
71 <token type="LiteralStringRegex"/>
72 </rule>
73 <rule pattern="[^\\#{}]+">
74 <token type="LiteralStringRegex"/>
75 </rule>
76 </state>
77 <state name="simple-backtick">
78 <rule>
79 <include state="string-intp-escaped"/>
80 </rule>
81 <rule pattern="[^\\`#]+">
82 <token type="LiteralStringBacktick"/>
83 </rule>
84 <rule pattern="[\\#]">
85 <token type="LiteralStringBacktick"/>
86 </rule>
87 <rule pattern="`">
88 <token type="LiteralStringBacktick"/>
89 <pop depth="1"/>
90 </rule>
91 </state>
92 <state name="string-intp">
93 <rule pattern="#\{">
94 <token type="LiteralStringInterpol"/>
95 <push state="in-intp"/>
96 </rule>
97 </state>
98 <state name="interpolated-regex">
99 <rule>
100 <include state="string-intp"/>
101 </rule>
102 <rule pattern="[\\#]">
103 <token type="LiteralStringRegex"/>
104 </rule>
105 <rule pattern="[^\\#]+">
106 <token type="LiteralStringRegex"/>
107 </rule>
108 </state>
109 <state name="cb-string">
110 <rule pattern="\\[\\{}]">
111 <token type="LiteralStringOther"/>
112 </rule>
113 <rule pattern="\{">
114 <token type="LiteralStringOther"/>
115 <push/>
116 </rule>
117 <rule pattern="\}">
118 <token type="LiteralStringOther"/>
119 <pop depth="1"/>
120 </rule>
121 <rule pattern="[\\#{}]">
122 <token type="LiteralStringOther"/>
123 </rule>
124 <rule pattern="[^\\#{}]+">
125 <token type="LiteralStringOther"/>
126 </rule>
127 </state>
128 <state name="in-macro-control">
129 <rule pattern="\{%">
130 <token type="LiteralStringInterpol"/>
131 <push/>
132 </rule>
133 <rule pattern="%\}">
134 <token type="LiteralStringInterpol"/>
135 <pop depth="1"/>
136 </rule>
137 <rule pattern="for\b|in\b">
138 <token type="Keyword"/>
139 </rule>
140 <rule>
141 <include state="root"/>
142 </rule>
143 </state>
144 <state name="interpolated-string">
145 <rule>
146 <include state="string-intp"/>
147 </rule>
148 <rule pattern="[\\#]">
149 <token type="LiteralStringOther"/>
150 </rule>
151 <rule pattern="[^\\#]+">
152 <token type="LiteralStringOther"/>
153 </rule>
154 </state>
155 <state name="in-macro-expr">
156 <rule pattern="\{\{">
157 <token type="LiteralStringInterpol"/>
158 <push/>
159 </rule>
160 <rule pattern="\}\}">
161 <token type="LiteralStringInterpol"/>
162 <pop depth="1"/>
163 </rule>
164 <rule>
165 <include state="root"/>
166 </rule>
167 </state>
168 <state name="simple-string">
169 <rule>
170 <include state="string-intp-escaped"/>
171 </rule>
172 <rule pattern="[^\\&#34;#]+">
173 <token type="LiteralStringDouble"/>
174 </rule>
175 <rule pattern="[\\#]">
176 <token type="LiteralStringDouble"/>
177 </rule>
178 <rule pattern="&#34;">
179 <token type="LiteralStringDouble"/>
180 <pop depth="1"/>
181 </rule>
182 </state>
183 <state name="cb-intp-string">
184 <rule pattern="\\[\{]">
185 <token type="LiteralStringOther"/>
186 </rule>
187 <rule pattern="\{">
188 <token type="LiteralStringOther"/>
189 <push/>
190 </rule>
191 <rule pattern="\}">
192 <token type="LiteralStringOther"/>
193 <pop depth="1"/>
194 </rule>
195 <rule>
196 <include state="string-intp-escaped"/>
197 </rule>
198 <rule pattern="[\\#{}]">
199 <token type="LiteralStringOther"/>
200 </rule>
201 <rule pattern="[^\\#{}]+">
202 <token type="LiteralStringOther"/>
203 </rule>
204 </state>
205 <state name="string-intp-escaped">
206 <rule>
207 <include state="string-intp"/>
208 </rule>
209 <rule>
210 <include state="string-escaped"/>
211 </rule>
212 </state>
213 <state name="sb-regex">
214 <rule pattern="\\[\\\[\]]">
215 <token type="LiteralStringRegex"/>
216 </rule>
217 <rule pattern="\[">
218 <token type="LiteralStringRegex"/>
219 <push/>
220 </rule>
221 <rule pattern="\][imsx]*">
222 <token type="LiteralStringRegex"/>
223 <pop depth="1"/>
224 </rule>
225 <rule>
226 <include state="string-intp"/>
227 </rule>
228 <rule pattern="[\\#\[\]]">
229 <token type="LiteralStringRegex"/>
230 </rule>
231 <rule pattern="[^\\#\[\]]+">
232 <token type="LiteralStringRegex"/>
233 </rule>
234 </state>
235 <state name="classname">
236 <rule pattern="[A-Z_]\w*">
237 <token type="NameClass"/>
238 </rule>
239 <rule pattern="(\()(\s*)([A-Z_]\w*)(\s*)(\))">
240 <bygroups>
241 <token type="Punctuation"/>
242 <token type="Text"/>
243 <token type="NameClass"/>
244 <token type="Text"/>
245 <token type="Punctuation"/>
246 </bygroups>
247 </rule>
248 <rule>
249 <pop depth="1"/>
250 </rule>
251 </state>
252 <state name="string-escaped">
253 <rule pattern="\\([\\befnstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})">
254 <token type="LiteralStringEscape"/>
255 </rule>
256 </state>
257 <state name="sb-intp-string">
258 <rule pattern="\\[\[]">
259 <token type="LiteralStringOther"/>
260 </rule>
261 <rule pattern="\[">
262 <token type="LiteralStringOther"/>
263 <push/>
264 </rule>
265 <rule pattern="\]">
266 <token type="LiteralStringOther"/>
267 <pop depth="1"/>
268 </rule>
269 <rule>
270 <include state="string-intp-escaped"/>
271 </rule>
272 <rule pattern="[\\#\[\]]">
273 <token type="LiteralStringOther"/>
274 </rule>
275 <rule pattern="[^\\#\[\]]+">
276 <token type="LiteralStringOther"/>
277 </rule>
278 </state>
279 <state name="pa-regex">
280 <rule pattern="\\[\\()]">
281 <token type="LiteralStringRegex"/>
282 </rule>
283 <rule pattern="\(">
284 <token type="LiteralStringRegex"/>
285 <push/>
286 </rule>
287 <rule pattern="\)[imsx]*">
288 <token type="LiteralStringRegex"/>
289 <pop depth="1"/>
290 </rule>
291 <rule>
292 <include state="string-intp"/>
293 </rule>
294 <rule pattern="[\\#()]">
295 <token type="LiteralStringRegex"/>
296 </rule>
297 <rule pattern="[^\\#()]+">
298 <token type="LiteralStringRegex"/>
299 </rule>
300 </state>
301 <state name="in-attr">
302 <rule pattern="\[">
303 <token type="Operator"/>
304 <push/>
305 </rule>
306 <rule pattern="\]">
307 <token type="Operator"/>
308 <pop depth="1"/>
309 </rule>
310 <rule>
311 <include state="root"/>
312 </rule>
313 </state>
314 <state name="ab-intp-string">
315 <rule pattern="\\[&lt;]">
316 <token type="LiteralStringOther"/>
317 </rule>
318 <rule pattern="&lt;">
319 <token type="LiteralStringOther"/>
320 <push/>
321 </rule>
322 <rule pattern="&gt;">
323 <token type="LiteralStringOther"/>
324 <pop depth="1"/>
325 </rule>
326 <rule>
327 <include state="string-intp-escaped"/>
328 </rule>
329 <rule pattern="[\\#&lt;&gt;]">
330 <token type="LiteralStringOther"/>
331 </rule>
332 <rule pattern="[^\\#&lt;&gt;]+">
333 <token type="LiteralStringOther"/>
334 </rule>
335 </state>
336 <state name="in-intp">
337 <rule pattern="\{">
338 <token type="LiteralStringInterpol"/>
339 <push/>
340 </rule>
341 <rule pattern="\}">
342 <token type="LiteralStringInterpol"/>
343 <pop depth="1"/>
344 </rule>
345 <rule>
346 <include state="root"/>
347 </rule>
348 </state>
349 <state name="end-part">
350 <rule pattern=".+">
351 <token type="CommentPreproc"/>
352 <pop depth="1"/>
353 </rule>
354 </state>
355 <state name="root">
356 <rule pattern="#.*?$">
357 <token type="CommentSingle"/>
358 </rule>
359 <rule pattern="(instance_sizeof|pointerof|protected|abstract|require|private|include|unless|typeof|sizeof|return|extend|ensure|rescue|ifdef|super|break|begin|until|while|elsif|yield|next|when|else|then|case|with|end|asm|if|do|as|of)\b">
360 <token type="Keyword"/>
361 </rule>
362 <rule pattern="(false|true|nil)\b">
363 <token type="KeywordConstant"/>
364 </rule>
365 <rule pattern="(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
366 <bygroups>
367 <token type="Keyword"/>
368 <token type="Text"/>
369 <token type="NameNamespace"/>
370 </bygroups>
371 </rule>
372 <rule pattern="(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)">
373 <bygroups>
374 <token type="Keyword"/>
375 <token type="Text"/>
376 <token type="NameNamespace"/>
377 </bygroups>
378 <push state="funcname"/>
379 </rule>
380 <rule pattern="def(?=[*%&amp;^`~+-/\[&lt;&gt;=])">
381 <token type="Keyword"/>
382 <push state="funcname"/>
383 </rule>
384 <rule pattern="(class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)">
385 <bygroups>
386 <token type="Keyword"/>
387 <token type="Text"/>
388 <token type="NameNamespace"/>
389 </bygroups>
390 <push state="classname"/>
391 </rule>
392 <rule pattern="(self|out|uninitialized)\b|(is_a|responds_to)\?">
393 <token type="KeywordPseudo"/>
394 </rule>
395 <rule pattern="(def_equals_and_hash|assert_responds_to|forward_missing_to|def_equals|property|def_hash|parallel|delegate|debugger|getter|record|setter|spawn|pp)\b">
396 <token type="NameBuiltinPseudo"/>
397 </rule>
398 <rule pattern="getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b">
399 <token type="NameBuiltinPseudo"/>
400 </rule>
401 <rule pattern="(?&lt;!\.)(get_stack_top|StaticArray|Concurrent|with_color|Reference|Scheduler|read_line|Exception|at_exit|Pointer|Channel|Float64|sprintf|Float32|Process|Object|Struct|caller|UInt16|UInt32|UInt64|system|future|Number|printf|String|Symbol|Int32|Range|Slice|Regex|Mutex|sleep|Array|Class|raise|Tuple|Deque|delay|Float|Int16|print|abort|Value|UInt8|Int64|puts|Proc|File|Void|exit|fork|Bool|Char|gets|lazy|loop|main|rand|Enum|Int8|Time|Hash|Set|Box|Nil|Dir|Int|p)\b">
402 <token type="NameBuiltin"/>
403 </rule>
404 <rule pattern="(?&lt;!\w)(&lt;&lt;-?)([&#34;`\&#39;]?)([a-zA-Z_]\w*)(\2)(.*?\n)">
405 <token type="LiteralStringHeredoc"/>
406 </rule>
407 <rule pattern="(&lt;&lt;-?)(&#34;|\&#39;)()(\2)(.*?\n)">
408 <token type="LiteralStringHeredoc"/>
409 </rule>
410 <rule pattern="__END__">
411 <token type="CommentPreproc"/>
412 <push state="end-part"/>
413 </rule>
414 <rule pattern="(?:^|(?&lt;=[=&lt;&gt;~!:])|(?&lt;=(?:\s|;)when\s)|(?&lt;=(?:\s|;)or\s)|(?&lt;=(?:\s|;)and\s)|(?&lt;=\.index\s)|(?&lt;=\.scan\s)|(?&lt;=\.sub\s)|(?&lt;=\.sub!\s)|(?&lt;=\.gsub\s)|(?&lt;=\.gsub!\s)|(?&lt;=\.match\s)|(?&lt;=(?:\s|;)if\s)|(?&lt;=(?:\s|;)elsif\s)|(?&lt;=^when\s)|(?&lt;=^index\s)|(?&lt;=^scan\s)|(?&lt;=^sub\s)|(?&lt;=^gsub\s)|(?&lt;=^sub!\s)|(?&lt;=^gsub!\s)|(?&lt;=^match\s)|(?&lt;=^if\s)|(?&lt;=^elsif\s))(\s*)(/)">
415 <bygroups>
416 <token type="Text"/>
417 <token type="LiteralStringRegex"/>
418 </bygroups>
419 <push state="multiline-regex"/>
420 </rule>
421 <rule pattern="(?&lt;=\(|,|\[)/">
422 <token type="LiteralStringRegex"/>
423 <push state="multiline-regex"/>
424 </rule>
425 <rule pattern="(\s+)(/)(?![\s=])">
426 <bygroups>
427 <token type="Text"/>
428 <token type="LiteralStringRegex"/>
429 </bygroups>
430 <push state="multiline-regex"/>
431 </rule>
432 <rule pattern="(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
433 <bygroups>
434 <token type="LiteralNumberOct"/>
435 <token type="Text"/>
436 <token type="Operator"/>
437 </bygroups>
438 </rule>
439 <rule pattern="(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
440 <bygroups>
441 <token type="LiteralNumberHex"/>
442 <token type="Text"/>
443 <token type="Operator"/>
444 </bygroups>
445 </rule>
446 <rule pattern="(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
447 <bygroups>
448 <token type="LiteralNumberBin"/>
449 <token type="Text"/>
450 <token type="Operator"/>
451 </bygroups>
452 </rule>
453 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?">
454 <bygroups>
455 <token type="LiteralNumberFloat"/>
456 <token type="Text"/>
457 <token type="Operator"/>
458 </bygroups>
459 </rule>
460 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?">
461 <bygroups>
462 <token type="LiteralNumberFloat"/>
463 <token type="Text"/>
464 <token type="Operator"/>
465 </bygroups>
466 </rule>
467 <rule pattern="((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?">
468 <bygroups>
469 <token type="LiteralNumberFloat"/>
470 <token type="Text"/>
471 <token type="Operator"/>
472 </bygroups>
473 </rule>
474 <rule pattern="(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?">
475 <bygroups>
476 <token type="LiteralNumberInteger"/>
477 <token type="Text"/>
478 <token type="Operator"/>
479 </bygroups>
480 </rule>
481 <rule pattern="@@[a-zA-Z_]\w*">
482 <token type="NameVariableClass"/>
483 </rule>
484 <rule pattern="@[a-zA-Z_]\w*">
485 <token type="NameVariableInstance"/>
486 </rule>
487 <rule pattern="\$\w+">
488 <token type="NameVariableGlobal"/>
489 </rule>
490 <rule pattern="\$[!@&amp;`\&#39;+~=/\\,;.&lt;&gt;_*$?:&#34;^-]">
491 <token type="NameVariableGlobal"/>
492 </rule>
493 <rule pattern="\$-[0adFiIlpvw]">
494 <token type="NameVariableGlobal"/>
495 </rule>
496 <rule pattern="::">
497 <token type="Operator"/>
498 </rule>
499 <rule>
500 <include state="strings"/>
501 </rule>
502 <rule pattern="\?(\\[MC]-)*(\\([\\befnrtv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)">
503 <token type="LiteralStringChar"/>
504 </rule>
505 <rule pattern="[A-Z][A-Z_]+\b">
506 <token type="NameConstant"/>
507 </rule>
508 <rule pattern="\{%">
509 <token type="LiteralStringInterpol"/>
510 <push state="in-macro-control"/>
511 </rule>
512 <rule pattern="\{\{">
513 <token type="LiteralStringInterpol"/>
514 <push state="in-macro-expr"/>
515 </rule>
516 <rule pattern="(@\[)(\s*)([A-Z]\w*)">
517 <bygroups>
518 <token type="Operator"/>
519 <token type="Text"/>
520 <token type="NameDecorator"/>
521 </bygroups>
522 <push state="in-attr"/>
523 </rule>
524 <rule pattern="(\.|::)(\[\]\?|&lt;=&gt;|===|\[\]=|&gt;&gt;|&amp;&amp;|\*\*|\[\]|\|\||&gt;=|=~|!~|&lt;&lt;|&lt;=|!=|==|&lt;|/|=|-|\+|&gt;|\*|&amp;|%|\^|!|\||~)">
525 <bygroups>
526 <token type="Operator"/>
527 <token type="NameOperator"/>
528 </bygroups>
529 </rule>
530 <rule pattern="(\.|::)([a-zA-Z_]\w*[!?]?|[*%&amp;^`~+\-/\[&lt;&gt;=])">
531 <bygroups>
532 <token type="Operator"/>
533 <token type="Name"/>
534 </bygroups>
535 </rule>
536 <rule pattern="[a-zA-Z_]\w*(?:[!?](?!=))?">
537 <token type="Name"/>
538 </rule>
539 <rule pattern="(\[|\]\??|\*\*|&lt;=&gt;?|&gt;=|&lt;&lt;?|&gt;&gt;?|=~|===|!~|&amp;&amp;?|\|\||\.{1,3})">
540 <token type="Operator"/>
541 </rule>
542 <rule pattern="[-+/*%=&lt;&gt;&amp;!^|~]=?">
543 <token type="Operator"/>
544 </rule>
545 <rule pattern="[(){};,/?:\\]">
546 <token type="Punctuation"/>
547 </rule>
548 <rule pattern="\s+">
549 <token type="Text"/>
550 </rule>
551 </state>
552 <state name="multiline-regex">
553 <rule>
554 <include state="string-intp"/>
555 </rule>
556 <rule pattern="\\\\">
557 <token type="LiteralStringRegex"/>
558 </rule>
559 <rule pattern="\\/">
560 <token type="LiteralStringRegex"/>
561 </rule>
562 <rule pattern="[\\#]">
563 <token type="LiteralStringRegex"/>
564 </rule>
565 <rule pattern="[^\\/#]+">
566 <token type="LiteralStringRegex"/>
567 </rule>
568 <rule pattern="/[imsx]*">
569 <token type="LiteralStringRegex"/>
570 <pop depth="1"/>
571 </rule>
572 </state>
573 <state name="ab-string">
574 <rule pattern="\\[\\&lt;&gt;]">
575 <token type="LiteralStringOther"/>
576 </rule>
577 <rule pattern="&lt;">
578 <token type="LiteralStringOther"/>
579 <push/>
580 </rule>
581 <rule pattern="&gt;">
582 <token type="LiteralStringOther"/>
583 <pop depth="1"/>
584 </rule>
585 <rule pattern="[\\#&lt;&gt;]">
586 <token type="LiteralStringOther"/>
587 </rule>
588 <rule pattern="[^\\#&lt;&gt;]+">
589 <token type="LiteralStringOther"/>
590 </rule>
591 </state>
592 <state name="pa-string">
593 <rule pattern="\\[\\()]">
594 <token type="LiteralStringOther"/>
595 </rule>
596 <rule pattern="\(">
597 <token type="LiteralStringOther"/>
598 <push/>
599 </rule>
600 <rule pattern="\)">
601 <token type="LiteralStringOther"/>
602 <pop depth="1"/>
603 </rule>
604 <rule pattern="[\\#()]">
605 <token type="LiteralStringOther"/>
606 </rule>
607 <rule pattern="[^\\#()]+">
608 <token type="LiteralStringOther"/>
609 </rule>
610 </state>
611 <state name="strings">
612 <rule pattern="\:@{0,2}[a-zA-Z_]\w*[!?]?">
613 <token type="LiteralStringSymbol"/>
614 </rule>
615 <rule pattern="\:@{0,2}(\[\]\?|&lt;=&gt;|===|\[\]=|&gt;&gt;|&amp;&amp;|\*\*|\[\]|\|\||&gt;=|=~|!~|&lt;&lt;|&lt;=|!=|==|&lt;|/|=|-|\+|&gt;|\*|&amp;|%|\^|!|\||~)">
616 <token type="LiteralStringSymbol"/>
617 </rule>
618 <rule pattern=":&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
619 <token type="LiteralStringSymbol"/>
620 </rule>
621 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;]|\\[^&#39;\\]+)&#39;">
622 <token type="LiteralStringChar"/>
623 </rule>
624 <rule pattern=":&#34;">
625 <token type="LiteralStringSymbol"/>
626 <push state="simple-sym"/>
627 </rule>
628 <rule pattern="([a-zA-Z_]\w*)(:)(?!:)">
629 <bygroups>
630 <token type="LiteralStringSymbol"/>
631 <token type="Punctuation"/>
632 </bygroups>
633 </rule>
634 <rule pattern="&#34;">
635 <token type="LiteralStringDouble"/>
636 <push state="simple-string"/>
637 </rule>
638 <rule pattern="(?&lt;!\.)`">
639 <token type="LiteralStringBacktick"/>
640 <push state="simple-backtick"/>
641 </rule>
642 <rule pattern="%\{">
643 <token type="LiteralStringOther"/>
644 <push state="cb-intp-string"/>
645 </rule>
646 <rule pattern="%[wi]\{">
647 <token type="LiteralStringOther"/>
648 <push state="cb-string"/>
649 </rule>
650 <rule pattern="%r\{">
651 <token type="LiteralStringRegex"/>
652 <push state="cb-regex"/>
653 </rule>
654 <rule pattern="%\[">
655 <token type="LiteralStringOther"/>
656 <push state="sb-intp-string"/>
657 </rule>
658 <rule pattern="%[wi]\[">
659 <token type="LiteralStringOther"/>
660 <push state="sb-string"/>
661 </rule>
662 <rule pattern="%r\[">
663 <token type="LiteralStringRegex"/>
664 <push state="sb-regex"/>
665 </rule>
666 <rule pattern="%\(">
667 <token type="LiteralStringOther"/>
668 <push state="pa-intp-string"/>
669 </rule>
670 <rule pattern="%[wi]\(">
671 <token type="LiteralStringOther"/>
672 <push state="pa-string"/>
673 </rule>
674 <rule pattern="%r\(">
675 <token type="LiteralStringRegex"/>
676 <push state="pa-regex"/>
677 </rule>
678 <rule pattern="%&lt;">
679 <token type="LiteralStringOther"/>
680 <push state="ab-intp-string"/>
681 </rule>
682 <rule pattern="%[wi]&lt;">
683 <token type="LiteralStringOther"/>
684 <push state="ab-string"/>
685 </rule>
686 <rule pattern="%r&lt;">
687 <token type="LiteralStringRegex"/>
688 <push state="ab-regex"/>
689 </rule>
690 <rule pattern="(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[imsx]*)">
691 <token type="LiteralString"/>
692 </rule>
693 <rule pattern="(%[wi]([\W_]))((?:\\\2|(?!\2).)*)(\2)">
694 <token type="LiteralString"/>
695 </rule>
696 <rule pattern="(?&lt;=[-+/*%=&lt;&gt;&amp;!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
697 <bygroups>
698 <token type="Text"/>
699 <token type="LiteralStringOther"/>
700 <token type="None"/>
701 </bygroups>
702 </rule>
703 <rule pattern="^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
704 <bygroups>
705 <token type="Text"/>
706 <token type="LiteralStringOther"/>
707 <token type="None"/>
708 </bygroups>
709 </rule>
710 <rule pattern="(%([\[{(&lt;]))((?:\\\2|(?!\2).)*)(\2)">
711 <token type="LiteralString"/>
712 </rule>
713 </state>
714 <state name="sb-string">
715 <rule pattern="\\[\\\[\]]">
716 <token type="LiteralStringOther"/>
717 </rule>
718 <rule pattern="\[">
719 <token type="LiteralStringOther"/>
720 <push/>
721 </rule>
722 <rule pattern="\]">
723 <token type="LiteralStringOther"/>
724 <pop depth="1"/>
725 </rule>
726 <rule pattern="[\\#\[\]]">
727 <token type="LiteralStringOther"/>
728 </rule>
729 <rule pattern="[^\\#\[\]]+">
730 <token type="LiteralStringOther"/>
731 </rule>
732 </state>
733 <state name="funcname">
734 <rule pattern="(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&amp;|^`~]|\[\]=?|&lt;&lt;|&gt;&gt;|&lt;=?&gt;|&gt;=?|===?)">
735 <bygroups>
736 <token type="NameClass"/>
737 <token type="Operator"/>
738 <token type="NameFunction"/>
739 </bygroups>
740 <pop depth="1"/>
741 </rule>
742 <rule>
743 <pop depth="1"/>
744 </rule>
745 </state>
746 <state name="simple-sym">
747 <rule>
748 <include state="string-escaped"/>
749 </rule>
750 <rule pattern="[^\\&#34;#]+">
751 <token type="LiteralStringSymbol"/>
752 </rule>
753 <rule pattern="[\\#]">
754 <token type="LiteralStringSymbol"/>
755 </rule>
756 <rule pattern="&#34;">
757 <token type="LiteralStringSymbol"/>
758 <pop depth="1"/>
759 </rule>
760 </state>
761 </rules>
762</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml
new file mode 100644
index 0000000..8c2ff45
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/csharp.xml
@@ -0,0 +1,115 @@
1<lexer>
2 <config>
3 <name>C#</name>
4 <alias>csharp</alias>
5 <alias>c#</alias>
6 <filename>*.cs</filename>
7 <mime_type>text/x-csharp</mime_type>
8 <dot_all>true</dot_all>
9 <ensure_nl>true</ensure_nl>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="^\s*\[.*?\]">
14 <token type="NameAttribute"/>
15 </rule>
16 <rule pattern="[^\S\n]+">
17 <token type="Text"/>
18 </rule>
19 <rule pattern="\\\n">
20 <token type="Text"/>
21 </rule>
22 <rule pattern="///[^\n\r]+">
23 <token type="CommentSpecial"/>
24 </rule>
25 <rule pattern="//[^\n\r]+">
26 <token type="CommentSingle"/>
27 </rule>
28 <rule pattern="/[*].*?[*]/">
29 <token type="CommentMultiline"/>
30 </rule>
31 <rule pattern="\n">
32 <token type="Text"/>
33 </rule>
34 <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;/?-]">
35 <token type="Punctuation"/>
36 </rule>
37 <rule pattern="[{}]">
38 <token type="Punctuation"/>
39 </rule>
40 <rule pattern="@&#34;(&#34;&#34;|[^&#34;])*&#34;">
41 <token type="LiteralString"/>
42 </rule>
43 <rule pattern="\$@?&#34;(&#34;&#34;|[^&#34;])*&#34;">
44 <token type="LiteralString"/>
45 </rule>
46 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;\n])*[&#34;\n]">
47 <token type="LiteralString"/>
48 </rule>
49 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
50 <token type="LiteralStringChar"/>
51 </rule>
52 <rule pattern="0[xX][0-9a-fA-F]+[Ll]?|\d[_\d]*(\.\d*)?([eE][+-]?\d+)?[flFLdD]?">
53 <token type="LiteralNumber"/>
54 </rule>
55 <rule pattern="#[ \t]*(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma|nullable)\b[^\n\r]+">
56 <token type="CommentPreproc"/>
57 </rule>
58 <rule pattern="\b(extern)(\s+)(alias)\b">
59 <bygroups>
60 <token type="Keyword"/>
61 <token type="Text"/>
62 <token type="Keyword"/>
63 </bygroups>
64 </rule>
65 <rule pattern="(abstract|as|async|await|base|break|by|case|catch|checked|const|continue|default|delegate|do|else|enum|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|init|internal|is|let|lock|new|null|on|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unchecked|unsafe|virtual|void|while|get|set|new|partial|yield|add|remove|value|alias|ascending|descending|from|group|into|orderby|select|thenby|where|join|equals)\b">
66 <token type="Keyword"/>
67 </rule>
68 <rule pattern="(global)(::)">
69 <bygroups>
70 <token type="Keyword"/>
71 <token type="Punctuation"/>
72 </bygroups>
73 </rule>
74 <rule pattern="(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??">
75 <token type="KeywordType"/>
76 </rule>
77 <rule pattern="(class|struct|record|interface)(\s+)">
78 <bygroups>
79 <token type="Keyword"/>
80 <token type="Text"/>
81 </bygroups>
82 <push state="class"/>
83 </rule>
84 <rule pattern="(namespace|using)(\s+)">
85 <bygroups>
86 <token type="Keyword"/>
87 <token type="Text"/>
88 </bygroups>
89 <push state="namespace"/>
90 </rule>
91 <rule pattern="@?[_a-zA-Z]\w*">
92 <token type="Name"/>
93 </rule>
94 </state>
95 <state name="class">
96 <rule pattern="@?[_a-zA-Z]\w*">
97 <token type="NameClass"/>
98 <pop depth="1"/>
99 </rule>
100 <rule>
101 <pop depth="1"/>
102 </rule>
103 </state>
104 <state name="namespace">
105 <rule pattern="(?=\()">
106 <token type="Text"/>
107 <pop depth="1"/>
108 </rule>
109 <rule pattern="(@?[_a-zA-Z]\w*|\.)+">
110 <token type="NameNamespace"/>
111 <pop depth="1"/>
112 </rule>
113 </state>
114 </rules>
115</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml
new file mode 100644
index 0000000..0faa06e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/css.xml
@@ -0,0 +1,323 @@
1<lexer>
2 <config>
3 <name>CSS</name>
4 <alias>css</alias>
5 <filename>*.css</filename>
6 <mime_type>text/css</mime_type>
7 </config>
8 <rules>
9 <state name="numeric-end">
10 <rule pattern="(vmin|grad|vmax|turn|dppx|dpcm|kHz|dpi|rad|rem|deg|vw|vh|ch|px|mm|cm|in|pt|pc|Hz|ex|em|ms|q|s)\b">
11 <token type="KeywordType"/>
12 </rule>
13 <rule pattern="%">
14 <token type="KeywordType"/>
15 </rule>
16 <rule>
17 <pop depth="1"/>
18 </rule>
19 </state>
20 <state name="atrule">
21 <rule pattern="\{">
22 <token type="Punctuation"/>
23 <push state="atcontent"/>
24 </rule>
25 <rule pattern=";">
26 <token type="Punctuation"/>
27 <pop depth="1"/>
28 </rule>
29 <rule>
30 <include state="basics"/>
31 </rule>
32 </state>
33 <state name="atcontent">
34 <rule>
35 <include state="basics"/>
36 </rule>
37 <rule pattern="\}">
38 <token type="Punctuation"/>
39 <pop depth="2"/>
40 </rule>
41 </state>
42 <state name="common-values">
43 <rule pattern="\s+">
44 <token type="Text"/>
45 </rule>
46 <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
47 <token type="KeywordPseudo"/>
48 </rule>
49 <rule>
50 <include state="urls"/>
51 </rule>
52 <rule pattern="(attr|blackness|blend|blenda|blur|brightness|calc|circle|color-mod|contrast|counter|cubic-bezier|device-cmyk|drop-shadow|ellipse|gray|grayscale|hsl|hsla|hue|hue-rotate|hwb|image|inset|invert|lightness|linear-gradient|matrix|matrix3d|opacity|perspective|polygon|radial-gradient|rect|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotate3d|rotateX|rotateY|rotateZ|saturate|saturation|scale|scale3d|scaleX|scaleY|scaleZ|sepia|shade|skewX|skewY|steps|tint|toggle|translate|translate3d|translateX|translateY|translateZ|whiteness)(\()">
53 <bygroups>
54 <token type="NameBuiltin"/>
55 <token type="Punctuation"/>
56 </bygroups>
57 <push state="function-start"/>
58 </rule>
59 <rule pattern="([a-zA-Z_][\w-]+)(\()">
60 <bygroups>
61 <token type="NameFunction"/>
62 <token type="Punctuation"/>
63 </bygroups>
64 <push state="function-start"/>
65 </rule>
66 <rule pattern="(use-glyph-orientation|decimal-leading-zero|ruby-base-container|ruby-text-container|table-column-group|table-header-group|geometricPrecision|table-footer-group|optimizeLegibility|alternate-reverse|repeat no-repeat|table-row-group|all-petite-caps|ultra-condensed|extra-condensed|box-decoration|sideways-right|extra-expanded|no-close-quote|all-small-caps|semi-condensed|ultra-expanded|column-reverse|space-between|semi-expanded|table-caption|no-open-quote|sideways-left|double-circle|vertical-text|optimizeSpeed|weight style|currentColor|titling-caps|match-parent|table-column|line-through|inline-block|inline-table|wrap-reverse|avoid-column|manipulation|space-around|context-menu|lower-alpha|row-reverse|not-allowed|content-box|ease-in-out|close-quote|lower-latin|crisp-edges|lower-roman|lower-greek|upper-alpha|upper-latin|upper-roman|nwse-resize|nesw-resize|preserve-3d|inline-flex|petite-caps|color-dodge|descendants|padding-box|capitalize|small-caps|difference|inter-word|step-start|all-scroll|stroke-box|soft-light|margin-box|open-quote|table-cell|row-resize|border-box|hard-light|break-word|color-burn|luminosity|full-width|col-resize|from-image|avoid-page|scale-down|saturation|sans-serif|flex-start|distribute|horizontal|alternate|ruby-text|force-end|list-item|se-resize|mandatory|exclusion|ns-resize|underline|ruby-base|ew-resize|condensed|container|uppercase|no-repeat|nw-resize|table-row|backwards|crosshair|proximity|sw-resize|lowercase|allow-end|each-line|monospace|pixelated|ne-resize|luminance|pan-right|ellipsis|pan-down|pan-left|overline|multiply|progress|relative|infinite|repeat-x|repeat-y|georgian|forwards|flex-end|s-resize|fill-box|expanded|separate|ease-out|sideways|e-resize|step-end|n-resize|collapse|triangle|baseline|view-box|w-resize|armenian|absolute|xx-large|xx-small|vertical|zoom-out|contain|ease-in|running|no-drop|zoom-in|unicase|hanging|smaller|x-large|overlay|compact|lighter|lighten|objects|oblique|x-small|reverse|stretch|upright|cursive|inherit|initial|outside|pointer|decimal|default|justify|visible|balance|isolate|fantasy|paused|static|pan-up|invert|inside|italic|weight|inline|hidden|outset|larger|repeat|always|spaces|sticky|circle|digits|linear|column|smooth|nowrap|bolder|normal|sesame|dashed|groove|darken|bottom|run-in|manual|dotted|double|medium|filled|screen|scroll|center|strict|square|edges|serif|start|thick|first|clone|fixed|slice|small|under|unset|block|color|round|solid|space|right|ridge|blink|below|pan-y|avoid|large|cover|inset|alpha|local|alias|style|loose|table|mixed|pan-x|page|ruby|disc|none|snap|ease|text|show|thin|clip|left|open|wrap|fill|cell|flat|flex|flip|last|both|help|bold|over|hide|wait|icon|move|auto|copy|wavy|top|ltr|row|rtl|end|hue|dot|off|all|ink|to|on)\b">
67 <token type="KeywordConstant"/>
68 </rule>
69 <rule pattern="(cjk-ideographic|katakana-iroha|hiragana-iroha|small-caption|bidi-override|center-right|center-left|text-bottom|message-box|continuous|status-bar|right-side|rightwards|spell-out|left-side|landscape|far-right|leftwards|narrower|portrait|katakana|far-left|text-top|pre-wrap|hiragana|pre-line|silent|x-high|faster|higher|middle|x-soft|behind|x-fast|hebrew|slower|x-loud|super|above|lower|wider|level|aural|embed|x-low|cross|crop|fast|once|high|slow|soft|loud|yes|pre|low|mix)\b">
70 <token type="KeywordConstant"/>
71 </rule>
72 <rule pattern="(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
73 <token type="KeywordConstant"/>
74 </rule>
75 </state>
76 <state name="root">
77 <rule>
78 <include state="basics"/>
79 </rule>
80 </state>
81 <state name="numeric-values">
82 <rule pattern="\#[a-zA-Z0-9]{1,6}">
83 <token type="LiteralNumberHex"/>
84 </rule>
85 <rule pattern="[+\-]?[0-9]*[.][0-9]+">
86 <token type="LiteralNumberFloat"/>
87 <push state="numeric-end"/>
88 </rule>
89 <rule pattern="[+\-]?[0-9]+">
90 <token type="LiteralNumberInteger"/>
91 <push state="numeric-end"/>
92 </rule>
93 </state>
94 <state name="atparenthesis">
95 <rule>
96 <include state="common-values"/>
97 </rule>
98 <rule pattern="/\*(?:.|\n)*?\*/">
99 <token type="Comment"/>
100 </rule>
101 <rule>
102 <include state="numeric-values"/>
103 </rule>
104 <rule pattern="[*+/-]">
105 <token type="Operator"/>
106 </rule>
107 <rule pattern="[,]">
108 <token type="Punctuation"/>
109 </rule>
110 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
111 <token type="LiteralStringDouble"/>
112 </rule>
113 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
114 <token type="LiteralStringSingle"/>
115 </rule>
116 <rule pattern="[a-zA-Z_-]\w*">
117 <token type="Name"/>
118 </rule>
119 <rule pattern="\(">
120 <token type="Punctuation"/>
121 <push state="atparenthesis"/>
122 </rule>
123 <rule pattern="\)">
124 <token type="Punctuation"/>
125 <pop depth="1"/>
126 </rule>
127 </state>
128 <state name="basics">
129 <rule pattern="\s+">
130 <token type="Text"/>
131 </rule>
132 <rule pattern="/\*(?:.|\n)*?\*/">
133 <token type="Comment"/>
134 </rule>
135 <rule pattern="\{">
136 <token type="Punctuation"/>
137 <push state="content"/>
138 </rule>
139 <rule pattern="(\:{1,2})([\w-]+)">
140 <bygroups>
141 <token type="Punctuation"/>
142 <token type="NameDecorator"/>
143 </bygroups>
144 </rule>
145 <rule pattern="(\.)([\w-]+)">
146 <bygroups>
147 <token type="Punctuation"/>
148 <token type="NameClass"/>
149 </bygroups>
150 </rule>
151 <rule pattern="(\#)([\w-]+)">
152 <bygroups>
153 <token type="Punctuation"/>
154 <token type="NameNamespace"/>
155 </bygroups>
156 </rule>
157 <rule pattern="(@)([\w-]+)">
158 <bygroups>
159 <token type="Punctuation"/>
160 <token type="Keyword"/>
161 </bygroups>
162 <push state="atrule"/>
163 </rule>
164 <rule pattern="[\w-]+">
165 <token type="NameTag"/>
166 </rule>
167 <rule pattern="[~^*!%&amp;$\[\]()&lt;&gt;|+=@:;,./?-]">
168 <token type="Operator"/>
169 </rule>
170 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
171 <token type="LiteralStringDouble"/>
172 </rule>
173 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
174 <token type="LiteralStringSingle"/>
175 </rule>
176 </state>
177 <state name="content">
178 <rule pattern="\s+">
179 <token type="Text"/>
180 </rule>
181 <rule pattern="\}">
182 <token type="Punctuation"/>
183 <pop depth="1"/>
184 </rule>
185 <rule pattern=";">
186 <token type="Punctuation"/>
187 </rule>
188 <rule pattern="^@.*?$">
189 <token type="CommentPreproc"/>
190 </rule>
191 <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
192 <token type="KeywordPseudo"/>
193 </rule>
194 <rule pattern="(align-content|align-items|align-self|alignment-baseline|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|bookmark-label|bookmark-level|bookmark-state|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-boundary|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|box-snap|box-suppress|break-after|break-before|break-inside|caption-side|caret|caret-animation|caret-color|caret-shape|chains|clear|clip|clip-path|clip-rule|color|color-interpolation-filters|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|counter-set|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|elevation|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|float-defer|float-offset|float-reference|flood-color|flood-opacity|flow|flow-from|flow-into|font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight|footnote-display|footnote-policy|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphenate-character|hyphenate-limit-chars|hyphenate-limit-last|hyphenate-limit-lines|hyphenate-limit-zone|hyphens|image-orientation|image-resolution|initial-letter|initial-letter-align|initial-letter-wrap|isolation|justify-content|justify-items|justify-self|left|letter-spacing|lighting-color|line-break|line-grid|line-height|line-snap|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|marker-side|marquee-direction|marquee-loop|marquee-speed|marquee-style|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-height|max-lines|max-width|min-height|min-width|mix-blend-mode|motion|motion-offset|motion-path|motion-rotation|move-to|nav-down|nav-left|nav-right|nav-up|object-fit|object-position|offset-after|offset-before|offset-end|offset-start|opacity|order|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|pitch|pitch-range|play-during|polar-angle|polar-distance|position|presentation-level|quotes|region-fragment|resize|rest|rest-after|rest-before|richness|right|rotation|rotation-point|ruby-align|ruby-merge|ruby-position|running|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-points-x|scroll-snap-points-y|scroll-snap-type|shape-image-threshold|shape-inside|shape-margin|shape-outside|size|speak|speak-as|speak-header|speak-numeral|speak-punctuation|speech-rate|stress|string-set|tab-size|table-layout|text-align|text-align-last|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-shadow|text-space-collapse|text-space-trim|text-spacing|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|wrap-after|wrap-before|wrap-flow|wrap-inside|wrap-through|writing-mode|z-index)(\s*)(\:)">
195 <bygroups>
196 <token type="Keyword"/>
197 <token type="Text"/>
198 <token type="Punctuation"/>
199 </bygroups>
200 <push state="value-start"/>
201 </rule>
202 <rule pattern="(--[a-zA-Z_][\w-]*)(\s*)(\:)">
203 <bygroups>
204 <token type="NameVariable"/>
205 <token type="Text"/>
206 <token type="Punctuation"/>
207 </bygroups>
208 <push state="value-start"/>
209 </rule>
210 <rule pattern="([a-zA-Z_][\w-]*)(\s*)(\:)">
211 <bygroups>
212 <token type="Name"/>
213 <token type="Text"/>
214 <token type="Punctuation"/>
215 </bygroups>
216 <push state="value-start"/>
217 </rule>
218 <rule pattern="/\*(?:.|\n)*?\*/">
219 <token type="Comment"/>
220 </rule>
221 </state>
222 <state name="value-start">
223 <rule>
224 <include state="common-values"/>
225 </rule>
226 <rule pattern="(color-interpolation-filters|glyph-orientation-vertical|border-bottom-right-radius|transition-timing-function|animation-iteration-count|animation-timing-function|border-bottom-left-radius|font-variant-east-asian|font-variant-alternates|border-top-right-radius|text-underline-position|scroll-snap-destination|font-language-override|text-emphasis-position|border-top-left-radius|font-variant-ligatures|scroll-snap-coordinate|hyphenate-limit-lines|background-attachment|font-feature-settings|grid-template-columns|text-decoration-style|font-variant-position|hyphenate-limit-chars|text-decoration-color|shape-image-threshold|background-blend-mode|hyphenate-limit-zone|initial-letter-align|text-combine-upright|hyphenate-limit-last|text-decoration-line|box-decoration-break|text-decoration-skip|animation-play-state|scroll-snap-points-y|font-variant-numeric|scroll-snap-points-x|animation-direction|border-bottom-width|hanging-punctuation|border-bottom-color|border-image-outset|border-image-repeat|list-style-position|border-image-source|initial-letter-wrap|text-space-collapse|background-position|hyphenate-character|grid-template-areas|backface-visibility|text-emphasis-style|transition-duration|animation-fill-mode|transition-property|text-emphasis-color|border-bottom-style|border-image-slice|mask-border-outset|border-right-width|border-right-style|perspective-origin|alignment-baseline|border-right-color|presentation-level|grid-template-rows|animation-duration|mask-border-source|mask-border-repeat|border-image-width|column-rule-color|speak-punctuation|dominant-baseline|marquee-direction|column-rule-width|mask-border-slice|border-left-color|mask-border-width|grid-auto-columns|counter-increment|border-left-style|grid-column-start|image-orientation|background-repeat|font-variant-caps|page-break-inside|page-break-before|background-origin|column-rule-style|border-left-width|list-style-image|page-break-after|transform-origin|border-top-color|border-top-style|border-top-width|footnote-display|background-color|image-resolution|background-image|transition-delay|text-orientation|font-size-adjust|mask-border-mode|scroll-snap-type|animation-delay|text-align-last|grid-column-end|list-style-type|text-space-trim|grid-column-gap|justify-content|text-decoration|footnote-policy|caret-animation|border-collapse|border-boundary|region-fragment|background-clip|background-size|float-reference|motion-rotation|object-position|transform-style|overflow-style|border-spacing|baseline-shift|initial-letter|bookmark-label|grid-row-start|animation-name|bookmark-level|flex-direction|letter-spacing|bookmark-state|mask-composite|grid-auto-rows|mix-blend-mode|outline-offset|padding-bottom|polar-distance|vertical-align|voice-duration|grid-auto-flow|rotation-point|text-transform|font-synthesis|lighting-color|speak-numeral|counter-reset|outline-style|border-bottom|outline-color|marquee-speed|ruby-position|mask-position|overflow-wrap|margin-bottom|text-overflow|motion-offset|align-content|grid-template|voice-balance|padding-right|border-radius|justify-items|shape-outside|outline-width|flood-opacity|text-emphasis|marquee-style|offset-before|text-spacing|offset-after|speak-header|float-offset|break-before|text-justify|padding-left|shape-margin|offset-start|justify-self|shape-inside|word-spacing|break-inside|caption-side|border-right|wrap-through|border-width|unicode-bidi|grid-row-gap|grid-row-end|voice-family|column-count|table-layout|pause-before|margin-right|box-suppress|font-kerning|font-stretch|marquee-loop|border-style|font-variant|voice-volume|writing-mode|voice-stress|border-image|border-color|column-width|voice-range|counter-set|rest-before|mask-border|border-left|polar-angle|mask-origin|text-shadow|mask-repeat|play-during|pitch-range|perspective|margin-left|pause-after|page-policy|white-space|voice-pitch|will-change|empty-cells|motion-path|align-items|caret-shape|padding-top|column-fill|caret-color|flex-shrink|line-height|text-indent|wrap-before|float-defer|wrap-inside|speech-rate|column-rule|user-select|font-family|break-after|grid-column|column-span|font-weight|marker-side|flood-color|rest-after|box-sizing|overflow-x|overflow-y|wrap-after|align-self|offset-end|object-fit|visibility|appearance|column-gap|border-top|list-style|min-height|flex-basis|word-break|box-shadow|max-height|background|line-break|text-align|margin-top|ruby-merge|ruby-align|font-style|string-set|cue-before|mask-image|transition|voice-rate|mask-clip|cue-after|font-size|text-wrap|clip-path|grid-area|clip-rule|mask-mode|direction|mask-size|elevation|flow-from|mask-type|line-grid|transform|max-width|word-wrap|flow-into|min-width|flex-flow|flex-grow|nav-right|flex-wrap|animation|wrap-flow|isolation|max-lines|line-snap|tab-size|speak-as|rotation|grid-gap|richness|box-snap|position|overflow|nav-left|grid-row|nav-down|opacity|outline|padding|hyphens|z-index|azimuth|move-to|running|display|columns|content|orphans|resize|quotes|volume|motion|border|margin|chains|filter|nav-up|stress|height|cursor|bottom|widows|right|speak|color|pitch|caret|clear|width|pause|float|order|left|clip|grid|crop|font|flex|mask|size|page|flow|rest|all|top|cue)\b">
227 <token type="Keyword"/>
228 </rule>
229 <rule pattern="\!important">
230 <token type="CommentPreproc"/>
231 </rule>
232 <rule pattern="/\*(?:.|\n)*?\*/">
233 <token type="Comment"/>
234 </rule>
235 <rule>
236 <include state="numeric-values"/>
237 </rule>
238 <rule pattern="[~^*!%&amp;&lt;&gt;|+=@:./?-]+">
239 <token type="Operator"/>
240 </rule>
241 <rule pattern="[\[\](),]+">
242 <token type="Punctuation"/>
243 </rule>
244 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
245 <token type="LiteralStringDouble"/>
246 </rule>
247 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
248 <token type="LiteralStringSingle"/>
249 </rule>
250 <rule pattern="[a-zA-Z_][\w-]*">
251 <token type="Name"/>
252 </rule>
253 <rule pattern=";">
254 <token type="Punctuation"/>
255 <pop depth="1"/>
256 </rule>
257 <rule pattern="\}">
258 <token type="Punctuation"/>
259 <pop depth="2"/>
260 </rule>
261 </state>
262 <state name="function-start">
263 <rule>
264 <include state="common-values"/>
265 </rule>
266 <rule pattern="/\*(?:.|\n)*?\*/">
267 <token type="Comment"/>
268 </rule>
269 <rule>
270 <include state="numeric-values"/>
271 </rule>
272 <rule pattern="[*+/-]">
273 <token type="Operator"/>
274 </rule>
275 <rule pattern="[,]">
276 <token type="Punctuation"/>
277 </rule>
278 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
279 <token type="LiteralStringDouble"/>
280 </rule>
281 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
282 <token type="LiteralStringSingle"/>
283 </rule>
284 <rule pattern="[a-zA-Z_-]\w*">
285 <token type="Name"/>
286 </rule>
287 <rule pattern="\(">
288 <token type="Punctuation"/>
289 <push state="atparenthesis"/>
290 </rule>
291 <rule pattern="\)">
292 <token type="Punctuation"/>
293 <pop depth="1"/>
294 </rule>
295 </state>
296 <state name="urls">
297 <rule pattern="(url)(\()(&#34;.*?&#34;)(\))">
298 <bygroups>
299 <token type="NameBuiltin"/>
300 <token type="Punctuation"/>
301 <token type="LiteralStringDouble"/>
302 <token type="Punctuation"/>
303 </bygroups>
304 </rule>
305 <rule pattern="(url)(\()(&#39;.*?&#39;)(\))">
306 <bygroups>
307 <token type="NameBuiltin"/>
308 <token type="Punctuation"/>
309 <token type="LiteralStringSingle"/>
310 <token type="Punctuation"/>
311 </bygroups>
312 </rule>
313 <rule pattern="(url)(\()(.*?)(\))">
314 <bygroups>
315 <token type="NameBuiltin"/>
316 <token type="Punctuation"/>
317 <token type="LiteralStringOther"/>
318 <token type="Punctuation"/>
319 </bygroups>
320 </rule>
321 </state>
322 </rules>
323</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml
new file mode 100644
index 0000000..15dfe4d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cython.xml
@@ -0,0 +1,372 @@
1<lexer>
2 <config>
3 <name>Cython</name>
4 <alias>cython</alias>
5 <alias>pyx</alias>
6 <alias>pyrex</alias>
7 <filename>*.pyx</filename>
8 <filename>*.pxd</filename>
9 <filename>*.pxi</filename>
10 <mime_type>text/x-cython</mime_type>
11 <mime_type>application/x-cython</mime_type>
12 </config>
13 <rules>
14 <state name="funcname">
15 <rule pattern="[a-zA-Z_]\w*">
16 <token type="NameFunction"/>
17 <pop depth="1"/>
18 </rule>
19 </state>
20 <state name="root">
21 <rule pattern="\n">
22 <token type="Text"/>
23 </rule>
24 <rule pattern="^(\s*)(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
25 <bygroups>
26 <token type="Text"/>
27 <token type="LiteralStringDoc"/>
28 </bygroups>
29 </rule>
30 <rule pattern="^(\s*)(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
31 <bygroups>
32 <token type="Text"/>
33 <token type="LiteralStringDoc"/>
34 </bygroups>
35 </rule>
36 <rule pattern="[^\S\n]+">
37 <token type="Text"/>
38 </rule>
39 <rule pattern="#.*$">
40 <token type="Comment"/>
41 </rule>
42 <rule pattern="[]{}:(),;[]">
43 <token type="Punctuation"/>
44 </rule>
45 <rule pattern="\\\n">
46 <token type="Text"/>
47 </rule>
48 <rule pattern="\\">
49 <token type="Text"/>
50 </rule>
51 <rule pattern="(in|is|and|or|not)\b">
52 <token type="OperatorWord"/>
53 </rule>
54 <rule pattern="(&lt;)([a-zA-Z0-9.?]+)(&gt;)">
55 <bygroups>
56 <token type="Punctuation"/>
57 <token type="KeywordType"/>
58 <token type="Punctuation"/>
59 </bygroups>
60 </rule>
61 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-~+/*%=&lt;&gt;&amp;^|.?]">
62 <token type="Operator"/>
63 </rule>
64 <rule pattern="(from)(\d+)(&lt;=)(\s+)(&lt;)(\d+)(:)">
65 <bygroups>
66 <token type="Keyword"/>
67 <token type="LiteralNumberInteger"/>
68 <token type="Operator"/>
69 <token type="Name"/>
70 <token type="Operator"/>
71 <token type="Name"/>
72 <token type="Punctuation"/>
73 </bygroups>
74 </rule>
75 <rule>
76 <include state="keywords"/>
77 </rule>
78 <rule pattern="(def|property)(\s+)">
79 <bygroups>
80 <token type="Keyword"/>
81 <token type="Text"/>
82 </bygroups>
83 <push state="funcname"/>
84 </rule>
85 <rule pattern="(cp?def)(\s+)">
86 <bygroups>
87 <token type="Keyword"/>
88 <token type="Text"/>
89 </bygroups>
90 <push state="cdef"/>
91 </rule>
92 <rule pattern="(cdef)(:)">
93 <bygroups>
94 <token type="Keyword"/>
95 <token type="Punctuation"/>
96 </bygroups>
97 </rule>
98 <rule pattern="(class|struct)(\s+)">
99 <bygroups>
100 <token type="Keyword"/>
101 <token type="Text"/>
102 </bygroups>
103 <push state="classname"/>
104 </rule>
105 <rule pattern="(from)(\s+)">
106 <bygroups>
107 <token type="Keyword"/>
108 <token type="Text"/>
109 </bygroups>
110 <push state="fromimport"/>
111 </rule>
112 <rule pattern="(c?import)(\s+)">
113 <bygroups>
114 <token type="Keyword"/>
115 <token type="Text"/>
116 </bygroups>
117 <push state="import"/>
118 </rule>
119 <rule>
120 <include state="builtins"/>
121 </rule>
122 <rule>
123 <include state="backtick"/>
124 </rule>
125 <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#34;&#34;&#34;">
126 <token type="LiteralString"/>
127 <push state="tdqs"/>
128 </rule>
129 <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#39;&#39;&#39;">
130 <token type="LiteralString"/>
131 <push state="tsqs"/>
132 </rule>
133 <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#34;">
134 <token type="LiteralString"/>
135 <push state="dqs"/>
136 </rule>
137 <rule pattern="(?:[rR]|[uU][rR]|[rR][uU])&#39;">
138 <token type="LiteralString"/>
139 <push state="sqs"/>
140 </rule>
141 <rule pattern="[uU]?&#34;&#34;&#34;">
142 <token type="LiteralString"/>
143 <combined state="stringescape" state="tdqs"/>
144 </rule>
145 <rule pattern="[uU]?&#39;&#39;&#39;">
146 <token type="LiteralString"/>
147 <combined state="stringescape" state="tsqs"/>
148 </rule>
149 <rule pattern="[uU]?&#34;">
150 <token type="LiteralString"/>
151 <combined state="stringescape" state="dqs"/>
152 </rule>
153 <rule pattern="[uU]?&#39;">
154 <token type="LiteralString"/>
155 <combined state="stringescape" state="sqs"/>
156 </rule>
157 <rule>
158 <include state="name"/>
159 </rule>
160 <rule>
161 <include state="numbers"/>
162 </rule>
163 </state>
164 <state name="stringescape">
165 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
166 <token type="LiteralStringEscape"/>
167 </rule>
168 </state>
169 <state name="strings">
170 <rule pattern="%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
171 <token type="LiteralStringInterpol"/>
172 </rule>
173 <rule pattern="[^\\\&#39;&#34;%\n]+">
174 <token type="LiteralString"/>
175 </rule>
176 <rule pattern="[\&#39;&#34;\\]">
177 <token type="LiteralString"/>
178 </rule>
179 <rule pattern="%">
180 <token type="LiteralString"/>
181 </rule>
182 </state>
183 <state name="backtick">
184 <rule pattern="`.*?`">
185 <token type="LiteralStringBacktick"/>
186 </rule>
187 </state>
188 <state name="numbers">
189 <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
190 <token type="LiteralNumberFloat"/>
191 </rule>
192 <rule pattern="0\d+">
193 <token type="LiteralNumberOct"/>
194 </rule>
195 <rule pattern="0[xX][a-fA-F0-9]+">
196 <token type="LiteralNumberHex"/>
197 </rule>
198 <rule pattern="\d+L">
199 <token type="LiteralNumberIntegerLong"/>
200 </rule>
201 <rule pattern="\d+">
202 <token type="LiteralNumberInteger"/>
203 </rule>
204 </state>
205 <state name="keywords">
206 <rule pattern="(continue|ctypedef|except\?|include|finally|global|return|lambda|assert|except|print|nogil|while|fused|yield|break|raise|exec|else|elif|pass|with|gil|for|try|del|by|as|if)\b">
207 <token type="Keyword"/>
208 </rule>
209 <rule pattern="(DEF|IF|ELIF|ELSE)\b">
210 <token type="CommentPreproc"/>
211 </rule>
212 </state>
213 <state name="fromimport">
214 <rule pattern="(\s+)(c?import)\b">
215 <bygroups>
216 <token type="Text"/>
217 <token type="Keyword"/>
218 </bygroups>
219 <pop depth="1"/>
220 </rule>
221 <rule pattern="[a-zA-Z_.][\w.]*">
222 <token type="NameNamespace"/>
223 </rule>
224 <rule>
225 <pop depth="1"/>
226 </rule>
227 </state>
228 <state name="nl">
229 <rule pattern="\n">
230 <token type="LiteralString"/>
231 </rule>
232 </state>
233 <state name="dqs">
234 <rule pattern="&#34;">
235 <token type="LiteralString"/>
236 <pop depth="1"/>
237 </rule>
238 <rule pattern="\\\\|\\&#34;|\\\n">
239 <token type="LiteralStringEscape"/>
240 </rule>
241 <rule>
242 <include state="strings"/>
243 </rule>
244 </state>
245 <state name="tsqs">
246 <rule pattern="&#39;&#39;&#39;">
247 <token type="LiteralString"/>
248 <pop depth="1"/>
249 </rule>
250 <rule>
251 <include state="strings"/>
252 </rule>
253 <rule>
254 <include state="nl"/>
255 </rule>
256 </state>
257 <state name="import">
258 <rule pattern="(\s+)(as)(\s+)">
259 <bygroups>
260 <token type="Text"/>
261 <token type="Keyword"/>
262 <token type="Text"/>
263 </bygroups>
264 </rule>
265 <rule pattern="[a-zA-Z_][\w.]*">
266 <token type="NameNamespace"/>
267 </rule>
268 <rule pattern="(\s*)(,)(\s*)">
269 <bygroups>
270 <token type="Text"/>
271 <token type="Operator"/>
272 <token type="Text"/>
273 </bygroups>
274 </rule>
275 <rule>
276 <pop depth="1"/>
277 </rule>
278 </state>
279 <state name="name">
280 <rule pattern="@\w+">
281 <token type="NameDecorator"/>
282 </rule>
283 <rule pattern="[a-zA-Z_]\w*">
284 <token type="Name"/>
285 </rule>
286 </state>
287 <state name="cdef">
288 <rule pattern="(public|readonly|extern|api|inline)\b">
289 <token type="KeywordReserved"/>
290 </rule>
291 <rule pattern="(struct|enum|union|class)\b">
292 <token type="Keyword"/>
293 </rule>
294 <rule pattern="([a-zA-Z_]\w*)(\s*)(?=[(:#=]|$)">
295 <bygroups>
296 <token type="NameFunction"/>
297 <token type="Text"/>
298 </bygroups>
299 <pop depth="1"/>
300 </rule>
301 <rule pattern="([a-zA-Z_]\w*)(\s*)(,)">
302 <bygroups>
303 <token type="NameFunction"/>
304 <token type="Text"/>
305 <token type="Punctuation"/>
306 </bygroups>
307 </rule>
308 <rule pattern="from\b">
309 <token type="Keyword"/>
310 <pop depth="1"/>
311 </rule>
312 <rule pattern="as\b">
313 <token type="Keyword"/>
314 </rule>
315 <rule pattern=":">
316 <token type="Punctuation"/>
317 <pop depth="1"/>
318 </rule>
319 <rule pattern="(?=[&#34;\&#39;])">
320 <token type="Text"/>
321 <pop depth="1"/>
322 </rule>
323 <rule pattern="[a-zA-Z_]\w*">
324 <token type="KeywordType"/>
325 </rule>
326 <rule pattern=".">
327 <token type="Text"/>
328 </rule>
329 </state>
330 <state name="classname">
331 <rule pattern="[a-zA-Z_]\w*">
332 <token type="NameClass"/>
333 <pop depth="1"/>
334 </rule>
335 </state>
336 <state name="sqs">
337 <rule pattern="&#39;">
338 <token type="LiteralString"/>
339 <pop depth="1"/>
340 </rule>
341 <rule pattern="\\\\|\\&#39;|\\\n">
342 <token type="LiteralStringEscape"/>
343 </rule>
344 <rule>
345 <include state="strings"/>
346 </rule>
347 </state>
348 <state name="tdqs">
349 <rule pattern="&#34;&#34;&#34;">
350 <token type="LiteralString"/>
351 <pop depth="1"/>
352 </rule>
353 <rule>
354 <include state="strings"/>
355 </rule>
356 <rule>
357 <include state="nl"/>
358 </rule>
359 </state>
360 <state name="builtins">
361 <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|issubclass|isinstance|basestring|bytearray|raw_input|frozenset|enumerate|property|unsigned|reversed|callable|execfile|hasattr|compile|complex|delattr|setattr|unicode|globals|getattr|reload|divmod|xrange|unichr|filter|reduce|buffer|intern|coerce|sorted|locals|object|round|input|range|super|tuple|bytes|float|slice|apply|bool|long|exit|vars|file|next|type|iter|open|dict|repr|hash|list|eval|oct|map|zip|int|hex|set|sum|chr|cmp|any|str|pow|ord|dir|len|min|all|abs|max|bin|id)\b">
362 <token type="NameBuiltin"/>
363 </rule>
364 <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL)\b">
365 <token type="NameBuiltinPseudo"/>
366 </rule>
367 <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|FloatingPointError|DeprecationWarning|UnicodeDecodeError|UnicodeEncodeError|UnboundLocalError|KeyboardInterrupt|ZeroDivisionError|IndentationError|EnvironmentError|OverflowWarning|ArithmeticError|RuntimeWarning|UnicodeWarning|AttributeError|AssertionError|NotImplemented|ReferenceError|StopIteration|SyntaxWarning|OverflowError|GeneratorExit|FutureWarning|BaseException|ImportWarning|StandardError|RuntimeError|UnicodeError|LookupError|ImportError|SyntaxError|MemoryError|SystemError|UserWarning|SystemExit|ValueError|IndexError|NameError|TypeError|Exception|KeyError|EOFError|TabError|OSError|Warning|IOError)\b">
368 <token type="NameException"/>
369 </rule>
370 </state>
371 </rules>
372</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml
new file mode 100644
index 0000000..49d7843
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/d.xml
@@ -0,0 +1,130 @@
1<lexer>
2 <config>
3 <name>D</name>
4 <alias>d</alias>
5 <filename>*.d</filename>
6 <filename>*.di</filename>
7 <mime_type>text/x-d</mime_type>
8 <ensure_nl>true</ensure_nl>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="[^\S\n]+">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="//.*?\n">
16 <token type="CommentSingle"/>
17 </rule>
18 <rule pattern="/\*.*?\*/">
19 <token type="CommentMultiline"/>
20 </rule>
21 <rule pattern="/\+.*?\+/">
22 <token type="CommentMultiline"/>
23 </rule>
24 <rule pattern="(asm|assert|body|break|case|cast|catch|continue|default|debug|delete|deprecated|do|else|finally|for|foreach|foreach_reverse|goto|if|in|invariant|is|macro|mixin|new|out|pragma|return|super|switch|this|throw|try|version|while|with)\b">
25 <token type="Keyword"/>
26 </rule>
27 <rule pattern="__(FILE|FILE_FULL_PATH|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__\b">
28 <token type="NameBuiltin"/>
29 </rule>
30 <rule pattern="__(traits|vector|parameters)\b">
31 <token type="NameBuiltin"/>
32 </rule>
33 <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
34 <bygroups>
35 <usingself state="root"/>
36 <token type="NameFunction"/>
37 <token type="Text"/>
38 <token type="Operator"/>
39 </bygroups>
40 </rule>
41 <rule pattern="@[\w.]*">
42 <token type="NameDecorator"/>
43 </rule>
44 <rule pattern="(abstract|auto|alias|align|const|delegate|enum|export|final|function|inout|lazy|nothrow|override|package|private|protected|public|pure|static|synchronized|template|volatile|__gshared)\b">
45 <token type="KeywordDeclaration"/>
46 </rule>
47 <rule pattern="(void|bool|byte|ubyte|short|ushort|int|uint|long|ulong|cent|ucent|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|char|wchar|dchar|string|wstring|dstring)\b">
48 <token type="KeywordType"/>
49 </rule>
50 <rule pattern="(module)(\s+)">
51 <bygroups>
52 <token type="KeywordNamespace"/>
53 <token type="Text"/>
54 </bygroups>
55 <push state="import"/>
56 </rule>
57 <rule pattern="(true|false|null)\b">
58 <token type="KeywordConstant"/>
59 </rule>
60 <rule pattern="(class|interface|struct|template|union)(\s+)">
61 <bygroups>
62 <token type="KeywordDeclaration"/>
63 <token type="Text"/>
64 </bygroups>
65 <push state="class"/>
66 </rule>
67 <rule pattern="(import)(\s+)">
68 <bygroups>
69 <token type="KeywordNamespace"/>
70 <token type="Text"/>
71 </bygroups>
72 <push state="import"/>
73 </rule>
74 <rule pattern="[qr]?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;[cwd]?">
75 <token type="LiteralString"/>
76 </rule>
77 <rule pattern="(`)([^`]*)(`)[cwd]?">
78 <token type="LiteralString"/>
79 </rule>
80 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
81 <token type="LiteralStringChar"/>
82 </rule>
83 <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
84 <bygroups>
85 <token type="Operator"/>
86 <token type="NameAttribute"/>
87 </bygroups>
88 </rule>
89 <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
90 <token type="NameLabel"/>
91 </rule>
92 <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFL]?i?|[0-9][eE][+\-]?[0-9][0-9_]*[fFL]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFL]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFL]?">
93 <token type="LiteralNumberFloat"/>
94 </rule>
95 <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
96 <token type="LiteralNumberHex"/>
97 </rule>
98 <rule pattern="0[bB][01][01_]*[lL]?">
99 <token type="LiteralNumberBin"/>
100 </rule>
101 <rule pattern="0[0-7_]+[lL]?">
102 <token type="LiteralNumberOct"/>
103 </rule>
104 <rule pattern="0|[1-9][0-9_]*[lL]?">
105 <token type="LiteralNumberInteger"/>
106 </rule>
107 <rule pattern="([~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]|q{)">
108 <token type="Operator"/>
109 </rule>
110 <rule pattern="([^\W\d]|\$)[\w$]*">
111 <token type="Name"/>
112 </rule>
113 <rule pattern="\n">
114 <token type="Text"/>
115 </rule>
116 </state>
117 <state name="class">
118 <rule pattern="([^\W\d]|\$)[\w$]*">
119 <token type="NameClass"/>
120 <pop depth="1"/>
121 </rule>
122 </state>
123 <state name="import">
124 <rule pattern="[\w.]+\*?">
125 <token type="NameNamespace"/>
126 <pop depth="1"/>
127 </rule>
128 </state>
129 </rules>
130</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml
new file mode 100644
index 0000000..f1b454f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dart.xml
@@ -0,0 +1,213 @@
1<lexer>
2 <config>
3 <name>Dart</name>
4 <alias>dart</alias>
5 <filename>*.dart</filename>
6 <mime_type>text/x-dart</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="string_double_multiline">
11 <rule pattern="&#34;&#34;&#34;">
12 <token type="LiteralStringDouble"/>
13 <pop depth="1"/>
14 </rule>
15 <rule pattern="[^&#34;$\\]+">
16 <token type="LiteralStringDouble"/>
17 </rule>
18 <rule>
19 <include state="string_common"/>
20 </rule>
21 <rule pattern="(\$|\&#34;)+">
22 <token type="LiteralStringDouble"/>
23 </rule>
24 </state>
25 <state name="class">
26 <rule pattern="[a-zA-Z_$]\w*">
27 <token type="NameClass"/>
28 <pop depth="1"/>
29 </rule>
30 </state>
31 <state name="import_decl">
32 <rule>
33 <include state="string_literal"/>
34 </rule>
35 <rule pattern="\s+">
36 <token type="Text"/>
37 </rule>
38 <rule pattern="\b(as|show|hide)\b">
39 <token type="Keyword"/>
40 </rule>
41 <rule pattern="[a-zA-Z_$]\w*">
42 <token type="Name"/>
43 </rule>
44 <rule pattern="\,">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern="\;">
48 <token type="Punctuation"/>
49 <pop depth="1"/>
50 </rule>
51 </state>
52 <state name="string_single_multiline">
53 <rule pattern="&#39;&#39;&#39;">
54 <token type="LiteralStringSingle"/>
55 <pop depth="1"/>
56 </rule>
57 <rule pattern="[^\&#39;$\\]+">
58 <token type="LiteralStringSingle"/>
59 </rule>
60 <rule>
61 <include state="string_common"/>
62 </rule>
63 <rule pattern="(\$|\&#39;)+">
64 <token type="LiteralStringSingle"/>
65 </rule>
66 </state>
67 <state name="root">
68 <rule>
69 <include state="string_literal"/>
70 </rule>
71 <rule pattern="#!(.*?)$">
72 <token type="CommentPreproc"/>
73 </rule>
74 <rule pattern="\b(import|export)\b">
75 <token type="Keyword"/>
76 <push state="import_decl"/>
77 </rule>
78 <rule pattern="\b(library|source|part of|part)\b">
79 <token type="Keyword"/>
80 </rule>
81 <rule pattern="[^\S\n]+">
82 <token type="Text"/>
83 </rule>
84 <rule pattern="//.*?\n">
85 <token type="CommentSingle"/>
86 </rule>
87 <rule pattern="/\*.*?\*/">
88 <token type="CommentMultiline"/>
89 </rule>
90 <rule pattern="\b(class)\b(\s+)">
91 <bygroups>
92 <token type="KeywordDeclaration"/>
93 <token type="Text"/>
94 </bygroups>
95 <push state="class"/>
96 </rule>
97 <rule pattern="\b(assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b">
98 <token type="Keyword"/>
99 </rule>
100 <rule pattern="\b(abstract|async|await|const|extends|factory|final|get|implements|native|operator|required|set|static|sync|typedef|var|with|yield)\b">
101 <token type="KeywordDeclaration"/>
102 </rule>
103 <rule pattern="\b(bool|double|dynamic|int|num|Object|String|void)\b">
104 <token type="KeywordType"/>
105 </rule>
106 <rule pattern="\b(false|null|true)\b">
107 <token type="KeywordConstant"/>
108 </rule>
109 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]|as\b">
110 <token type="Operator"/>
111 </rule>
112 <rule pattern="[a-zA-Z_$]\w*:">
113 <token type="NameLabel"/>
114 </rule>
115 <rule pattern="[a-zA-Z_$]\w*">
116 <token type="Name"/>
117 </rule>
118 <rule pattern="[(){}\[\],.;]">
119 <token type="Punctuation"/>
120 </rule>
121 <rule pattern="0[xX][0-9a-fA-F]+">
122 <token type="LiteralNumberHex"/>
123 </rule>
124 <rule pattern="\d+(\.\d*)?([eE][+-]?\d+)?">
125 <token type="LiteralNumber"/>
126 </rule>
127 <rule pattern="\.\d+([eE][+-]?\d+)?">
128 <token type="LiteralNumber"/>
129 </rule>
130 <rule pattern="\n">
131 <token type="Text"/>
132 </rule>
133 </state>
134 <state name="string_literal">
135 <rule pattern="r&#34;&#34;&#34;([\w\W]*?)&#34;&#34;&#34;">
136 <token type="LiteralStringDouble"/>
137 </rule>
138 <rule pattern="r&#39;&#39;&#39;([\w\W]*?)&#39;&#39;&#39;">
139 <token type="LiteralStringSingle"/>
140 </rule>
141 <rule pattern="r&#34;(.*?)&#34;">
142 <token type="LiteralStringDouble"/>
143 </rule>
144 <rule pattern="r&#39;(.*?)&#39;">
145 <token type="LiteralStringSingle"/>
146 </rule>
147 <rule pattern="&#34;&#34;&#34;">
148 <token type="LiteralStringDouble"/>
149 <push state="string_double_multiline"/>
150 </rule>
151 <rule pattern="&#39;&#39;&#39;">
152 <token type="LiteralStringSingle"/>
153 <push state="string_single_multiline"/>
154 </rule>
155 <rule pattern="&#34;">
156 <token type="LiteralStringDouble"/>
157 <push state="string_double"/>
158 </rule>
159 <rule pattern="&#39;">
160 <token type="LiteralStringSingle"/>
161 <push state="string_single"/>
162 </rule>
163 </state>
164 <state name="string_common">
165 <rule pattern="\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\{[0-9A-Fa-f]*\}|[a-z&#39;\&#34;$\\])">
166 <token type="LiteralStringEscape"/>
167 </rule>
168 <rule pattern="(\$)([a-zA-Z_]\w*)">
169 <bygroups>
170 <token type="LiteralStringInterpol"/>
171 <token type="Name"/>
172 </bygroups>
173 </rule>
174 <rule pattern="(\$\{)(.*?)(\})">
175 <bygroups>
176 <token type="LiteralStringInterpol"/>
177 <usingself state="root"/>
178 <token type="LiteralStringInterpol"/>
179 </bygroups>
180 </rule>
181 </state>
182 <state name="string_double">
183 <rule pattern="&#34;">
184 <token type="LiteralStringDouble"/>
185 <pop depth="1"/>
186 </rule>
187 <rule pattern="[^&#34;$\\\n]+">
188 <token type="LiteralStringDouble"/>
189 </rule>
190 <rule>
191 <include state="string_common"/>
192 </rule>
193 <rule pattern="\$+">
194 <token type="LiteralStringDouble"/>
195 </rule>
196 </state>
197 <state name="string_single">
198 <rule pattern="&#39;">
199 <token type="LiteralStringSingle"/>
200 <pop depth="1"/>
201 </rule>
202 <rule pattern="[^&#39;$\\\n]+">
203 <token type="LiteralStringSingle"/>
204 </rule>
205 <rule>
206 <include state="string_common"/>
207 </rule>
208 <rule pattern="\$+">
209 <token type="LiteralStringSingle"/>
210 </rule>
211 </state>
212 </rules>
213</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml
new file mode 100644
index 0000000..c10963e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/diff.xml
@@ -0,0 +1,40 @@
1<lexer>
2 <config>
3 <name>Diff</name>
4 <alias>diff</alias>
5 <alias>udiff</alias>
6 <filename>*.diff</filename>
7 <filename>*.patch</filename>
8 <mime_type>text/x-diff</mime_type>
9 <mime_type>text/x-patch</mime_type>
10 <ensure_nl>true</ensure_nl>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern=" .*\n">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="\+.*\n">
18 <token type="GenericInserted"/>
19 </rule>
20 <rule pattern="-.*\n">
21 <token type="GenericDeleted"/>
22 </rule>
23 <rule pattern="!.*\n">
24 <token type="GenericStrong"/>
25 </rule>
26 <rule pattern="@.*\n">
27 <token type="GenericSubheading"/>
28 </rule>
29 <rule pattern="([Ii]ndex|diff).*\n">
30 <token type="GenericHeading"/>
31 </rule>
32 <rule pattern="=.*\n">
33 <token type="GenericHeading"/>
34 </rule>
35 <rule pattern=".*\n">
36 <token type="Text"/>
37 </rule>
38 </state>
39 </rules>
40</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml
new file mode 100644
index 0000000..3c97c22
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/django_jinja.xml
@@ -0,0 +1,153 @@
1<lexer>
2 <config>
3 <name>Django/Jinja</name>
4 <alias>django</alias>
5 <alias>jinja</alias>
6 <mime_type>application/x-django-templating</mime_type>
7 <mime_type>application/x-jinja</mime_type>
8 <dot_all>true</dot_all>
9 </config>
10 <rules>
11 <state name="var">
12 <rule pattern="\s+">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="(-?)(\}\})">
16 <bygroups>
17 <token type="Text"/>
18 <token type="CommentPreproc"/>
19 </bygroups>
20 <pop depth="1"/>
21 </rule>
22 <rule>
23 <include state="varnames"/>
24 </rule>
25 </state>
26 <state name="block">
27 <rule pattern="\s+">
28 <token type="Text"/>
29 </rule>
30 <rule pattern="(-?)(%\})">
31 <bygroups>
32 <token type="Text"/>
33 <token type="CommentPreproc"/>
34 </bygroups>
35 <pop depth="1"/>
36 </rule>
37 <rule>
38 <include state="varnames"/>
39 </rule>
40 <rule pattern=".">
41 <token type="Punctuation"/>
42 </rule>
43 </state>
44 <state name="root">
45 <rule pattern="[^{]+">
46 <token type="Other"/>
47 </rule>
48 <rule pattern="\{\{">
49 <token type="CommentPreproc"/>
50 <push state="var"/>
51 </rule>
52 <rule pattern="\{[*#].*?[*#]\}">
53 <token type="Comment"/>
54 </rule>
55 <rule pattern="(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endcomment)(\s*-?)(%\})">
56 <bygroups>
57 <token type="CommentPreproc"/>
58 <token type="Text"/>
59 <token type="Keyword"/>
60 <token type="Text"/>
61 <token type="CommentPreproc"/>
62 <token type="Comment"/>
63 <token type="CommentPreproc"/>
64 <token type="Text"/>
65 <token type="Keyword"/>
66 <token type="Text"/>
67 <token type="CommentPreproc"/>
68 </bygroups>
69 </rule>
70 <rule pattern="(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})">
71 <bygroups>
72 <token type="CommentPreproc"/>
73 <token type="Text"/>
74 <token type="Keyword"/>
75 <token type="Text"/>
76 <token type="CommentPreproc"/>
77 <token type="Text"/>
78 <token type="CommentPreproc"/>
79 <token type="Text"/>
80 <token type="Keyword"/>
81 <token type="Text"/>
82 <token type="CommentPreproc"/>
83 </bygroups>
84 </rule>
85 <rule pattern="(\{%)(-?\s*)(filter)(\s+)([a-zA-Z_]\w*)">
86 <bygroups>
87 <token type="CommentPreproc"/>
88 <token type="Text"/>
89 <token type="Keyword"/>
90 <token type="Text"/>
91 <token type="NameFunction"/>
92 </bygroups>
93 <push state="block"/>
94 </rule>
95 <rule pattern="(\{%)(-?\s*)([a-zA-Z_]\w*)">
96 <bygroups>
97 <token type="CommentPreproc"/>
98 <token type="Text"/>
99 <token type="Keyword"/>
100 </bygroups>
101 <push state="block"/>
102 </rule>
103 <rule pattern="\{">
104 <token type="Other"/>
105 </rule>
106 </state>
107 <state name="varnames">
108 <rule pattern="(\|)(\s*)([a-zA-Z_]\w*)">
109 <bygroups>
110 <token type="Operator"/>
111 <token type="Text"/>
112 <token type="NameFunction"/>
113 </bygroups>
114 </rule>
115 <rule pattern="(is)(\s+)(not)?(\s+)?([a-zA-Z_]\w*)">
116 <bygroups>
117 <token type="Keyword"/>
118 <token type="Text"/>
119 <token type="Keyword"/>
120 <token type="Text"/>
121 <token type="NameFunction"/>
122 </bygroups>
123 </rule>
124 <rule pattern="(_|true|false|none|True|False|None)\b">
125 <token type="KeywordPseudo"/>
126 </rule>
127 <rule pattern="(in|as|reversed|recursive|not|and|or|is|if|else|import|with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b">
128 <token type="Keyword"/>
129 </rule>
130 <rule pattern="(loop|block|super|forloop)\b">
131 <token type="NameBuiltin"/>
132 </rule>
133 <rule pattern="[a-zA-Z_][\w-]*">
134 <token type="NameVariable"/>
135 </rule>
136 <rule pattern="\.\w+">
137 <token type="NameVariable"/>
138 </rule>
139 <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
140 <token type="LiteralStringDouble"/>
141 </rule>
142 <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
143 <token type="LiteralStringSingle"/>
144 </rule>
145 <rule pattern="([{}()\[\]+\-*/,:~]|[&gt;&lt;=]=?)">
146 <token type="Operator"/>
147 </rule>
148 <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
149 <token type="LiteralNumber"/>
150 </rule>
151 </state>
152 </rules>
153</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml
new file mode 100644
index 0000000..0edbbde
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dtd.xml
@@ -0,0 +1,168 @@
1<lexer>
2 <config>
3 <name>DTD</name>
4 <alias>dtd</alias>
5 <filename>*.dtd</filename>
6 <mime_type>application/xml-dtd</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="common">
11 <rule pattern="\s+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="(%|&amp;)[^;]*;">
15 <token type="NameEntity"/>
16 </rule>
17 <rule pattern="&lt;!--">
18 <token type="Comment"/>
19 <push state="comment"/>
20 </rule>
21 <rule pattern="[(|)*,?+]">
22 <token type="Operator"/>
23 </rule>
24 <rule pattern="&#34;[^&#34;]*&#34;">
25 <token type="LiteralStringDouble"/>
26 </rule>
27 <rule pattern="\&#39;[^\&#39;]*\&#39;">
28 <token type="LiteralStringSingle"/>
29 </rule>
30 </state>
31 <state name="comment">
32 <rule pattern="[^-]+">
33 <token type="Comment"/>
34 </rule>
35 <rule pattern="--&gt;">
36 <token type="Comment"/>
37 <pop depth="1"/>
38 </rule>
39 <rule pattern="-">
40 <token type="Comment"/>
41 </rule>
42 </state>
43 <state name="element">
44 <rule>
45 <include state="common"/>
46 </rule>
47 <rule pattern="EMPTY|ANY|#PCDATA">
48 <token type="KeywordConstant"/>
49 </rule>
50 <rule pattern="[^&gt;\s|()?+*,]+">
51 <token type="NameTag"/>
52 </rule>
53 <rule pattern="&gt;">
54 <token type="Keyword"/>
55 <pop depth="1"/>
56 </rule>
57 </state>
58 <state name="attlist">
59 <rule>
60 <include state="common"/>
61 </rule>
62 <rule pattern="CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION">
63 <token type="KeywordConstant"/>
64 </rule>
65 <rule pattern="#REQUIRED|#IMPLIED|#FIXED">
66 <token type="KeywordConstant"/>
67 </rule>
68 <rule pattern="xml:space|xml:lang">
69 <token type="KeywordReserved"/>
70 </rule>
71 <rule pattern="[^&gt;\s|()?+*,]+">
72 <token type="NameAttribute"/>
73 </rule>
74 <rule pattern="&gt;">
75 <token type="Keyword"/>
76 <pop depth="1"/>
77 </rule>
78 </state>
79 <state name="entity">
80 <rule>
81 <include state="common"/>
82 </rule>
83 <rule pattern="SYSTEM|PUBLIC|NDATA">
84 <token type="KeywordConstant"/>
85 </rule>
86 <rule pattern="[^&gt;\s|()?+*,]+">
87 <token type="NameEntity"/>
88 </rule>
89 <rule pattern="&gt;">
90 <token type="Keyword"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 <state name="notation">
95 <rule>
96 <include state="common"/>
97 </rule>
98 <rule pattern="SYSTEM|PUBLIC">
99 <token type="KeywordConstant"/>
100 </rule>
101 <rule pattern="[^&gt;\s|()?+*,]+">
102 <token type="NameAttribute"/>
103 </rule>
104 <rule pattern="&gt;">
105 <token type="Keyword"/>
106 <pop depth="1"/>
107 </rule>
108 </state>
109 <state name="root">
110 <rule>
111 <include state="common"/>
112 </rule>
113 <rule pattern="(&lt;!ELEMENT)(\s+)(\S+)">
114 <bygroups>
115 <token type="Keyword"/>
116 <token type="Text"/>
117 <token type="NameTag"/>
118 </bygroups>
119 <push state="element"/>
120 </rule>
121 <rule pattern="(&lt;!ATTLIST)(\s+)(\S+)">
122 <bygroups>
123 <token type="Keyword"/>
124 <token type="Text"/>
125 <token type="NameTag"/>
126 </bygroups>
127 <push state="attlist"/>
128 </rule>
129 <rule pattern="(&lt;!ENTITY)(\s+)(\S+)">
130 <bygroups>
131 <token type="Keyword"/>
132 <token type="Text"/>
133 <token type="NameEntity"/>
134 </bygroups>
135 <push state="entity"/>
136 </rule>
137 <rule pattern="(&lt;!NOTATION)(\s+)(\S+)">
138 <bygroups>
139 <token type="Keyword"/>
140 <token type="Text"/>
141 <token type="NameTag"/>
142 </bygroups>
143 <push state="notation"/>
144 </rule>
145 <rule pattern="(&lt;!\[)([^\[\s]+)(\s*)(\[)">
146 <bygroups>
147 <token type="Keyword"/>
148 <token type="NameEntity"/>
149 <token type="Text"/>
150 <token type="Keyword"/>
151 </bygroups>
152 </rule>
153 <rule pattern="(&lt;!DOCTYPE)(\s+)([^&gt;\s]+)">
154 <bygroups>
155 <token type="Keyword"/>
156 <token type="Text"/>
157 <token type="NameTag"/>
158 </bygroups>
159 </rule>
160 <rule pattern="PUBLIC|SYSTEM">
161 <token type="KeywordConstant"/>
162 </rule>
163 <rule pattern="[\[\]&gt;]">
164 <token type="Keyword"/>
165 </rule>
166 </state>
167 </rules>
168</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml
new file mode 100644
index 0000000..3660d14
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/dylan.xml
@@ -0,0 +1,176 @@
1<lexer>
2 <config>
3 <name>Dylan</name>
4 <alias>dylan</alias>
5 <filename>*.dylan</filename>
6 <filename>*.dyl</filename>
7 <filename>*.intr</filename>
8 <mime_type>text/x-dylan</mime_type>
9 <case_insensitive>true</case_insensitive>
10 </config>
11 <rules>
12 <state name="string">
13 <rule pattern="&#34;">
14 <token type="LiteralString"/>
15 <pop depth="1"/>
16 </rule>
17 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-f0-9]{2,4}|[0-7]{1,3})">
18 <token type="LiteralStringEscape"/>
19 </rule>
20 <rule pattern="[^\\&#34;\n]+">
21 <token type="LiteralString"/>
22 </rule>
23 <rule pattern="\\\n">
24 <token type="LiteralString"/>
25 </rule>
26 <rule pattern="\\">
27 <token type="LiteralString"/>
28 </rule>
29 </state>
30 <state name="root">
31 <rule pattern="\s+">
32 <token type="TextWhitespace"/>
33 </rule>
34 <rule pattern="//.*?\n">
35 <token type="CommentSingle"/>
36 </rule>
37 <rule pattern="([a-z0-9-]+:)([ \t]*)(.*(?:\n[ \t].+)*)">
38 <bygroups>
39 <token type="NameAttribute"/>
40 <token type="TextWhitespace"/>
41 <token type="LiteralString"/>
42 </bygroups>
43 </rule>
44 <rule>
45 <push state="code"/>
46 </rule>
47 </state>
48 <state name="code">
49 <rule pattern="\s+">
50 <token type="TextWhitespace"/>
51 </rule>
52 <rule pattern="//.*?\n">
53 <token type="CommentSingle"/>
54 </rule>
55 <rule pattern="/\*">
56 <token type="CommentMultiline"/>
57 <push state="comment"/>
58 </rule>
59 <rule pattern="&#34;">
60 <token type="LiteralString"/>
61 <push state="string"/>
62 </rule>
63 <rule pattern="&#39;(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\&#39;\n])&#39;">
64 <token type="LiteralStringChar"/>
65 </rule>
66 <rule pattern="#b[01]+">
67 <token type="LiteralNumberBin"/>
68 </rule>
69 <rule pattern="#o[0-7]+">
70 <token type="LiteralNumberOct"/>
71 </rule>
72 <rule pattern="[-+]?(\d*\.\d+([ed][-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)">
73 <token type="LiteralNumberFloat"/>
74 </rule>
75 <rule pattern="[-+]?\d+">
76 <token type="LiteralNumberInteger"/>
77 </rule>
78 <rule pattern="#x[0-9a-f]+">
79 <token type="LiteralNumberHex"/>
80 </rule>
81 <rule pattern="(\?\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)(:)(token|name|variable|expression|body|case-body|\*)">
82 <bygroups>
83 <token type="Operator"/>
84 <token type="NameVariable"/>
85 <token type="Operator"/>
86 <token type="NameBuiltin"/>
87 </bygroups>
88 </rule>
89 <rule pattern="(\?)(:)(token|name|variable|expression|body|case-body|\*)">
90 <bygroups>
91 <token type="Operator"/>
92 <token type="Operator"/>
93 <token type="NameVariable"/>
94 </bygroups>
95 </rule>
96 <rule pattern="(\?\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
97 <bygroups>
98 <token type="Operator"/>
99 <token type="NameVariable"/>
100 </bygroups>
101 </rule>
102 <rule pattern="(=&gt;|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])">
103 <token type="Punctuation"/>
104 </rule>
105 <rule pattern=":=">
106 <token type="Operator"/>
107 </rule>
108 <rule pattern="#[tf]">
109 <token type="Literal"/>
110 </rule>
111 <rule pattern="#&#34;">
112 <token type="LiteralStringSymbol"/>
113 <push state="symbol"/>
114 </rule>
115 <rule pattern="#[a-z0-9-]+">
116 <token type="Keyword"/>
117 </rule>
118 <rule pattern="#(all-keys|include|key|next|rest)">
119 <token type="Keyword"/>
120 </rule>
121 <rule pattern="[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+:">
122 <token type="KeywordConstant"/>
123 </rule>
124 <rule pattern="&lt;[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+&gt;">
125 <token type="NameClass"/>
126 </rule>
127 <rule pattern="\*[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+\*">
128 <token type="NameVariableGlobal"/>
129 </rule>
130 <rule pattern="\$[\w!&amp;*&lt;&gt;|^$%@+~?/=-]+">
131 <token type="NameConstant"/>
132 </rule>
133 <rule pattern="(let|method|function)([ \t]+)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
134 <bygroups>
135 <token type="NameBuiltin"/>
136 <token type="TextWhitespace"/>
137 <token type="NameVariable"/>
138 </bygroups>
139 </rule>
140 <rule pattern="(error|signal|return|break)">
141 <token type="NameException"/>
142 </rule>
143 <rule pattern="(\\?)([\w!&amp;*&lt;&gt;|^$%@+~?/=-]+)">
144 <bygroups>
145 <token type="Operator"/>
146 <token type="Name"/>
147 </bygroups>
148 </rule>
149 </state>
150 <state name="comment">
151 <rule pattern="[^*/]">
152 <token type="CommentMultiline"/>
153 </rule>
154 <rule pattern="/\*">
155 <token type="CommentMultiline"/>
156 <push/>
157 </rule>
158 <rule pattern="\*/">
159 <token type="CommentMultiline"/>
160 <pop depth="1"/>
161 </rule>
162 <rule pattern="[*/]">
163 <token type="CommentMultiline"/>
164 </rule>
165 </state>
166 <state name="symbol">
167 <rule pattern="&#34;">
168 <token type="LiteralStringSymbol"/>
169 <pop depth="1"/>
170 </rule>
171 <rule pattern="[^\\&#34;]+">
172 <token type="LiteralStringSymbol"/>
173 </rule>
174 </state>
175 </rules>
176</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml
new file mode 100644
index 0000000..df5d62f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ebnf.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>EBNF</name>
4 <alias>ebnf</alias>
5 <filename>*.ebnf</filename>
6 <mime_type>text/x-ebnf</mime_type>
7 </config>
8 <rules>
9 <state name="comment">
10 <rule pattern="[^*)]">
11 <token type="CommentMultiline"/>
12 </rule>
13 <rule>
14 <include state="comment_start"/>
15 </rule>
16 <rule pattern="\*\)">
17 <token type="CommentMultiline"/>
18 <pop depth="1"/>
19 </rule>
20 <rule pattern="[*)]">
21 <token type="CommentMultiline"/>
22 </rule>
23 </state>
24 <state name="identifier">
25 <rule pattern="([a-zA-Z][\w \-]*)">
26 <token type="Keyword"/>
27 </rule>
28 </state>
29 <state name="root">
30 <rule>
31 <include state="whitespace"/>
32 </rule>
33 <rule>
34 <include state="comment_start"/>
35 </rule>
36 <rule>
37 <include state="identifier"/>
38 </rule>
39 <rule pattern="=">
40 <token type="Operator"/>
41 <push state="production"/>
42 </rule>
43 </state>
44 <state name="production">
45 <rule>
46 <include state="whitespace"/>
47 </rule>
48 <rule>
49 <include state="comment_start"/>
50 </rule>
51 <rule>
52 <include state="identifier"/>
53 </rule>
54 <rule pattern="&#34;[^&#34;]*&#34;">
55 <token type="LiteralStringDouble"/>
56 </rule>
57 <rule pattern="&#39;[^&#39;]*&#39;">
58 <token type="LiteralStringSingle"/>
59 </rule>
60 <rule pattern="(\?[^?]*\?)">
61 <token type="NameEntity"/>
62 </rule>
63 <rule pattern="[\[\]{}(),|]">
64 <token type="Punctuation"/>
65 </rule>
66 <rule pattern="-">
67 <token type="Operator"/>
68 </rule>
69 <rule pattern=";">
70 <token type="Punctuation"/>
71 <pop depth="1"/>
72 </rule>
73 <rule pattern="\.">
74 <token type="Punctuation"/>
75 <pop depth="1"/>
76 </rule>
77 </state>
78 <state name="whitespace">
79 <rule pattern="\s+">
80 <token type="Text"/>
81 </rule>
82 </state>
83 <state name="comment_start">
84 <rule pattern="\(\*">
85 <token type="CommentMultiline"/>
86 <push state="comment"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml
new file mode 100644
index 0000000..a3308d6
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elixir.xml
@@ -0,0 +1,743 @@
1<lexer>
2 <config>
3 <name>Elixir</name>
4 <alias>elixir</alias>
5 <alias>ex</alias>
6 <alias>exs</alias>
7 <filename>*.ex</filename>
8 <filename>*.exs</filename>
9 <mime_type>text/x-elixir</mime_type>
10 </config>
11 <rules>
12 <state name="cb-intp">
13 <rule pattern="[^#\}\\]+">
14 <token type="LiteralStringOther"/>
15 </rule>
16 <rule>
17 <include state="escapes"/>
18 </rule>
19 <rule pattern="\\.">
20 <token type="LiteralStringOther"/>
21 </rule>
22 <rule pattern="\}[a-zA-Z]*">
23 <token type="LiteralStringOther"/>
24 <pop depth="1"/>
25 </rule>
26 <rule>
27 <include state="interpol"/>
28 </rule>
29 </state>
30 <state name="triquot-end">
31 <rule pattern="[a-zA-Z]+">
32 <token type="LiteralStringOther"/>
33 <pop depth="1"/>
34 </rule>
35 <rule>
36 <pop depth="1"/>
37 </rule>
38 </state>
39 <state name="apos-no-intp">
40 <rule pattern="[^&#39;\\]+">
41 <token type="LiteralStringOther"/>
42 </rule>
43 <rule pattern="\\.">
44 <token type="LiteralStringOther"/>
45 </rule>
46 <rule pattern="&#39;[a-zA-Z]*">
47 <token type="LiteralStringOther"/>
48 <pop depth="1"/>
49 </rule>
50 </state>
51 <state name="slas-no-intp">
52 <rule pattern="[^/\\]+">
53 <token type="LiteralStringOther"/>
54 </rule>
55 <rule pattern="\\.">
56 <token type="LiteralStringOther"/>
57 </rule>
58 <rule pattern="/[a-zA-Z]*">
59 <token type="LiteralStringOther"/>
60 <pop depth="1"/>
61 </rule>
62 </state>
63 <state name="pipe-no-intp">
64 <rule pattern="[^\|\\]+">
65 <token type="LiteralStringOther"/>
66 </rule>
67 <rule pattern="\\.">
68 <token type="LiteralStringOther"/>
69 </rule>
70 <rule pattern="\|[a-zA-Z]*">
71 <token type="LiteralStringOther"/>
72 <pop depth="1"/>
73 </rule>
74 </state>
75 <state name="apos-intp">
76 <rule pattern="[^#&#39;\\]+">
77 <token type="LiteralStringOther"/>
78 </rule>
79 <rule>
80 <include state="escapes"/>
81 </rule>
82 <rule pattern="\\.">
83 <token type="LiteralStringOther"/>
84 </rule>
85 <rule pattern="&#39;[a-zA-Z]*">
86 <token type="LiteralStringOther"/>
87 <pop depth="1"/>
88 </rule>
89 <rule>
90 <include state="interpol"/>
91 </rule>
92 </state>
93 <state name="cb-no-intp">
94 <rule pattern="[^\}\\]+">
95 <token type="LiteralStringOther"/>
96 </rule>
97 <rule pattern="\\.">
98 <token type="LiteralStringOther"/>
99 </rule>
100 <rule pattern="\}[a-zA-Z]*">
101 <token type="LiteralStringOther"/>
102 <pop depth="1"/>
103 </rule>
104 </state>
105 <state name="heredoc_double">
106 <rule pattern="^\s*&#34;&#34;&#34;">
107 <token type="LiteralStringHeredoc"/>
108 <pop depth="1"/>
109 </rule>
110 <rule>
111 <include state="heredoc_interpol"/>
112 </rule>
113 </state>
114 <state name="triapos-end">
115 <rule pattern="[a-zA-Z]+">
116 <token type="LiteralStringOther"/>
117 <pop depth="1"/>
118 </rule>
119 <rule>
120 <pop depth="1"/>
121 </rule>
122 </state>
123 <state name="interpol_string">
124 <rule pattern="\}">
125 <token type="LiteralStringInterpol"/>
126 <pop depth="1"/>
127 </rule>
128 <rule>
129 <include state="root"/>
130 </rule>
131 </state>
132 <state name="triquot-intp">
133 <rule pattern="^\s*&#34;&#34;&#34;">
134 <token type="LiteralStringHeredoc"/>
135 <pop depth="1"/>
136 </rule>
137 <rule>
138 <include state="heredoc_interpol"/>
139 </rule>
140 </state>
141 <state name="interpol">
142 <rule pattern="#\{">
143 <token type="LiteralStringInterpol"/>
144 <push state="interpol_string"/>
145 </rule>
146 </state>
147 <state name="pa-no-intp">
148 <rule pattern="[^\)\\]+">
149 <token type="LiteralStringOther"/>
150 </rule>
151 <rule pattern="\\.">
152 <token type="LiteralStringOther"/>
153 </rule>
154 <rule pattern="\)[a-zA-Z]*">
155 <token type="LiteralStringOther"/>
156 <pop depth="1"/>
157 </rule>
158 </state>
159 <state name="map_key">
160 <rule>
161 <include state="root"/>
162 </rule>
163 <rule pattern=":">
164 <token type="Punctuation"/>
165 <push state="map_val"/>
166 </rule>
167 <rule pattern="=&gt;">
168 <token type="Punctuation"/>
169 <push state="map_val"/>
170 </rule>
171 <rule pattern="\}">
172 <token type="Punctuation"/>
173 <pop depth="1"/>
174 </rule>
175 </state>
176 <state name="pa-intp">
177 <rule pattern="[^#\)\\]+">
178 <token type="LiteralStringOther"/>
179 </rule>
180 <rule>
181 <include state="escapes"/>
182 </rule>
183 <rule pattern="\\.">
184 <token type="LiteralStringOther"/>
185 </rule>
186 <rule pattern="\)[a-zA-Z]*">
187 <token type="LiteralStringOther"/>
188 <pop depth="1"/>
189 </rule>
190 <rule>
191 <include state="interpol"/>
192 </rule>
193 </state>
194 <state name="tuple">
195 <rule>
196 <include state="root"/>
197 </rule>
198 <rule pattern="\}">
199 <token type="Punctuation"/>
200 <pop depth="1"/>
201 </rule>
202 </state>
203 <state name="root">
204 <rule pattern="\s+">
205 <token type="Text"/>
206 </rule>
207 <rule pattern="#.*$">
208 <token type="CommentSingle"/>
209 </rule>
210 <rule pattern="(\?)(\\x\{)([\da-fA-F]+)(\})">
211 <bygroups>
212 <token type="LiteralStringChar"/>
213 <token type="LiteralStringEscape"/>
214 <token type="LiteralNumberHex"/>
215 <token type="LiteralStringEscape"/>
216 </bygroups>
217 </rule>
218 <rule pattern="(\?)(\\x[\da-fA-F]{1,2})">
219 <bygroups>
220 <token type="LiteralStringChar"/>
221 <token type="LiteralStringEscape"/>
222 </bygroups>
223 </rule>
224 <rule pattern="(\?)(\\[abdefnrstv])">
225 <bygroups>
226 <token type="LiteralStringChar"/>
227 <token type="LiteralStringEscape"/>
228 </bygroups>
229 </rule>
230 <rule pattern="\?\\?.">
231 <token type="LiteralStringChar"/>
232 </rule>
233 <rule pattern=":::">
234 <token type="LiteralStringSymbol"/>
235 </rule>
236 <rule pattern="::">
237 <token type="Operator"/>
238 </rule>
239 <rule pattern=":(?:\.\.\.|&lt;&lt;&gt;&gt;|%\{\}|%|\{\})">
240 <token type="LiteralStringSymbol"/>
241 </rule>
242 <rule pattern=":(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;|\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~|\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;))">
243 <token type="LiteralStringSymbol"/>
244 </rule>
245 <rule pattern=":&#34;">
246 <token type="LiteralStringSymbol"/>
247 <push state="string_double_atom"/>
248 </rule>
249 <rule pattern=":&#39;">
250 <token type="LiteralStringSymbol"/>
251 <push state="string_single_atom"/>
252 </rule>
253 <rule pattern="((?:\.\.\.|&lt;&lt;&gt;&gt;|%\{\}|%|\{\})|(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;|\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~|\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;)))(:)(?=\s|\n)">
254 <bygroups>
255 <token type="LiteralStringSymbol"/>
256 <token type="Punctuation"/>
257 </bygroups>
258 </rule>
259 <rule pattern="(fn|do|end|after|else|rescue|catch)\b">
260 <token type="Keyword"/>
261 </rule>
262 <rule pattern="(not|and|or|when|in)\b">
263 <token type="OperatorWord"/>
264 </rule>
265 <rule pattern="(case|cond|for|if|unless|try|receive|raise|quote|unquote|unquote_splicing|throw|super|while)\b">
266 <token type="Keyword"/>
267 </rule>
268 <rule pattern="(def|defp|defmodule|defprotocol|defmacro|defmacrop|defdelegate|defexception|defstruct|defimpl|defcallback)\b">
269 <token type="KeywordDeclaration"/>
270 </rule>
271 <rule pattern="(import|require|use|alias)\b">
272 <token type="KeywordNamespace"/>
273 </rule>
274 <rule pattern="(nil|true|false)\b">
275 <token type="NameConstant"/>
276 </rule>
277 <rule pattern="(_|__MODULE__|__DIR__|__ENV__|__CALLER__)\b">
278 <token type="NamePseudo"/>
279 </rule>
280 <rule pattern="@(?:\.\.\.|[a-z_]\w*[!?]?)">
281 <token type="NameAttribute"/>
282 </rule>
283 <rule pattern="(?:\.\.\.|[a-z_]\w*[!?]?)">
284 <token type="Name"/>
285 </rule>
286 <rule pattern="(%?)([A-Z]\w*(?:\.[A-Z]\w*)*)">
287 <bygroups>
288 <token type="Punctuation"/>
289 <token type="NameClass"/>
290 </bygroups>
291 </rule>
292 <rule pattern="\&lt;\&lt;\&lt;|\&gt;\&gt;\&gt;|\|\|\||\&amp;\&amp;\&amp;|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\&gt;\&gt;|\&lt;\~\&gt;|\|\~\&gt;|\&lt;\|\&gt;">
293 <token type="Operator"/>
294 </rule>
295 <rule pattern="\=\=|\!\=|\&lt;\=|\&gt;\=|\&amp;\&amp;|\|\||\&lt;\&gt;|\+\+|\-\-|\|\&gt;|\=\~|\-\&gt;|\&lt;\-|\||\.|\=|\~\&gt;|\&lt;\~">
296 <token type="Operator"/>
297 </rule>
298 <rule pattern="\\\\|\&lt;\&lt;|\&gt;\&gt;|\=\&gt;|\(|\)|\:|\;|\,|\[|\]">
299 <token type="Punctuation"/>
300 </rule>
301 <rule pattern="&amp;\d">
302 <token type="NameEntity"/>
303 </rule>
304 <rule pattern="\&lt;|\&gt;|\+|\-|\*|\/|\!|\^|\&amp;">
305 <token type="Operator"/>
306 </rule>
307 <rule pattern="0b[01](_?[01])*">
308 <token type="LiteralNumberBin"/>
309 </rule>
310 <rule pattern="0o[0-7](_?[0-7])*">
311 <token type="LiteralNumberOct"/>
312 </rule>
313 <rule pattern="0x[\da-fA-F](_?[\dA-Fa-f])*">
314 <token type="LiteralNumberHex"/>
315 </rule>
316 <rule pattern="\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?">
317 <token type="LiteralNumberFloat"/>
318 </rule>
319 <rule pattern="\d(_?\d)*">
320 <token type="LiteralNumberInteger"/>
321 </rule>
322 <rule pattern="&#34;&#34;&#34;\s*">
323 <token type="LiteralStringHeredoc"/>
324 <push state="heredoc_double"/>
325 </rule>
326 <rule pattern="&#39;&#39;&#39;\s*$">
327 <token type="LiteralStringHeredoc"/>
328 <push state="heredoc_single"/>
329 </rule>
330 <rule pattern="&#34;">
331 <token type="LiteralStringDouble"/>
332 <push state="string_double"/>
333 </rule>
334 <rule pattern="&#39;">
335 <token type="LiteralStringSingle"/>
336 <push state="string_single"/>
337 </rule>
338 <rule>
339 <include state="sigils"/>
340 </rule>
341 <rule pattern="%\{">
342 <token type="Punctuation"/>
343 <push state="map_key"/>
344 </rule>
345 <rule pattern="\{">
346 <token type="Punctuation"/>
347 <push state="tuple"/>
348 </rule>
349 </state>
350 <state name="sigils">
351 <rule pattern="(~[a-z])(&#34;&#34;&#34;)">
352 <bygroups>
353 <token type="LiteralStringOther"/>
354 <token type="LiteralStringHeredoc"/>
355 </bygroups>
356 <push state="triquot-end" state="triquot-intp"/>
357 </rule>
358 <rule pattern="(~[A-Z])(&#34;&#34;&#34;)">
359 <bygroups>
360 <token type="LiteralStringOther"/>
361 <token type="LiteralStringHeredoc"/>
362 </bygroups>
363 <push state="triquot-end" state="triquot-no-intp"/>
364 </rule>
365 <rule pattern="(~[a-z])(&#39;&#39;&#39;)">
366 <bygroups>
367 <token type="LiteralStringOther"/>
368 <token type="LiteralStringHeredoc"/>
369 </bygroups>
370 <push state="triapos-end" state="triapos-intp"/>
371 </rule>
372 <rule pattern="(~[A-Z])(&#39;&#39;&#39;)">
373 <bygroups>
374 <token type="LiteralStringOther"/>
375 <token type="LiteralStringHeredoc"/>
376 </bygroups>
377 <push state="triapos-end" state="triapos-no-intp"/>
378 </rule>
379 <rule pattern="~[a-z]\{">
380 <token type="LiteralStringOther"/>
381 <push state="cb-intp"/>
382 </rule>
383 <rule pattern="~[A-Z]\{">
384 <token type="LiteralStringOther"/>
385 <push state="cb-no-intp"/>
386 </rule>
387 <rule pattern="~[a-z]\[">
388 <token type="LiteralStringOther"/>
389 <push state="sb-intp"/>
390 </rule>
391 <rule pattern="~[A-Z]\[">
392 <token type="LiteralStringOther"/>
393 <push state="sb-no-intp"/>
394 </rule>
395 <rule pattern="~[a-z]\(">
396 <token type="LiteralStringOther"/>
397 <push state="pa-intp"/>
398 </rule>
399 <rule pattern="~[A-Z]\(">
400 <token type="LiteralStringOther"/>
401 <push state="pa-no-intp"/>
402 </rule>
403 <rule pattern="~[a-z]&lt;">
404 <token type="LiteralStringOther"/>
405 <push state="ab-intp"/>
406 </rule>
407 <rule pattern="~[A-Z]&lt;">
408 <token type="LiteralStringOther"/>
409 <push state="ab-no-intp"/>
410 </rule>
411 <rule pattern="~[a-z]/">
412 <token type="LiteralStringOther"/>
413 <push state="slas-intp"/>
414 </rule>
415 <rule pattern="~[A-Z]/">
416 <token type="LiteralStringOther"/>
417 <push state="slas-no-intp"/>
418 </rule>
419 <rule pattern="~[a-z]\|">
420 <token type="LiteralStringOther"/>
421 <push state="pipe-intp"/>
422 </rule>
423 <rule pattern="~[A-Z]\|">
424 <token type="LiteralStringOther"/>
425 <push state="pipe-no-intp"/>
426 </rule>
427 <rule pattern="~[a-z]&#34;">
428 <token type="LiteralStringOther"/>
429 <push state="quot-intp"/>
430 </rule>
431 <rule pattern="~[A-Z]&#34;">
432 <token type="LiteralStringOther"/>
433 <push state="quot-no-intp"/>
434 </rule>
435 <rule pattern="~[a-z]&#39;">
436 <token type="LiteralStringOther"/>
437 <push state="apos-intp"/>
438 </rule>
439 <rule pattern="~[A-Z]&#39;">
440 <token type="LiteralStringOther"/>
441 <push state="apos-no-intp"/>
442 </rule>
443 </state>
444 <state name="triapos-intp">
445 <rule pattern="^\s*&#39;&#39;&#39;">
446 <token type="LiteralStringHeredoc"/>
447 <pop depth="1"/>
448 </rule>
449 <rule>
450 <include state="heredoc_interpol"/>
451 </rule>
452 </state>
453 <state name="string_single_atom">
454 <rule pattern="[^#&#39;\\]+">
455 <token type="LiteralStringSymbol"/>
456 </rule>
457 <rule>
458 <include state="escapes"/>
459 </rule>
460 <rule pattern="\\.">
461 <token type="LiteralStringSymbol"/>
462 </rule>
463 <rule pattern="(&#39;)">
464 <bygroups>
465 <token type="LiteralStringSymbol"/>
466 </bygroups>
467 <pop depth="1"/>
468 </rule>
469 <rule>
470 <include state="interpol"/>
471 </rule>
472 </state>
473 <state name="quot-intp">
474 <rule pattern="[^#&#34;\\]+">
475 <token type="LiteralStringOther"/>
476 </rule>
477 <rule>
478 <include state="escapes"/>
479 </rule>
480 <rule pattern="\\.">
481 <token type="LiteralStringOther"/>
482 </rule>
483 <rule pattern="&#34;[a-zA-Z]*">
484 <token type="LiteralStringOther"/>
485 <pop depth="1"/>
486 </rule>
487 <rule>
488 <include state="interpol"/>
489 </rule>
490 </state>
491 <state name="sb-no-intp">
492 <rule pattern="[^\]\\]+">
493 <token type="LiteralStringOther"/>
494 </rule>
495 <rule pattern="\\.">
496 <token type="LiteralStringOther"/>
497 </rule>
498 <rule pattern="\][a-zA-Z]*">
499 <token type="LiteralStringOther"/>
500 <pop depth="1"/>
501 </rule>
502 </state>
503 <state name="slas-intp">
504 <rule pattern="[^#/\\]+">
505 <token type="LiteralStringOther"/>
506 </rule>
507 <rule>
508 <include state="escapes"/>
509 </rule>
510 <rule pattern="\\.">
511 <token type="LiteralStringOther"/>
512 </rule>
513 <rule pattern="/[a-zA-Z]*">
514 <token type="LiteralStringOther"/>
515 <pop depth="1"/>
516 </rule>
517 <rule>
518 <include state="interpol"/>
519 </rule>
520 </state>
521 <state name="sb-intp">
522 <rule pattern="[^#\]\\]+">
523 <token type="LiteralStringOther"/>
524 </rule>
525 <rule>
526 <include state="escapes"/>
527 </rule>
528 <rule pattern="\\.">
529 <token type="LiteralStringOther"/>
530 </rule>
531 <rule pattern="\][a-zA-Z]*">
532 <token type="LiteralStringOther"/>
533 <pop depth="1"/>
534 </rule>
535 <rule>
536 <include state="interpol"/>
537 </rule>
538 </state>
539 <state name="heredoc_no_interpol">
540 <rule pattern="[^\\\n]+">
541 <token type="LiteralStringHeredoc"/>
542 </rule>
543 <rule pattern="\\.">
544 <token type="LiteralStringHeredoc"/>
545 </rule>
546 <rule pattern="\n+">
547 <token type="LiteralStringHeredoc"/>
548 </rule>
549 </state>
550 <state name="pipe-intp">
551 <rule pattern="[^#\|\\]+">
552 <token type="LiteralStringOther"/>
553 </rule>
554 <rule>
555 <include state="escapes"/>
556 </rule>
557 <rule pattern="\\.">
558 <token type="LiteralStringOther"/>
559 </rule>
560 <rule pattern="\|[a-zA-Z]*">
561 <token type="LiteralStringOther"/>
562 <pop depth="1"/>
563 </rule>
564 <rule>
565 <include state="interpol"/>
566 </rule>
567 </state>
568 <state name="map_val">
569 <rule>
570 <include state="root"/>
571 </rule>
572 <rule pattern=",">
573 <token type="Punctuation"/>
574 <pop depth="1"/>
575 </rule>
576 <rule pattern="(?=\})">
577 <token type="Punctuation"/>
578 <pop depth="1"/>
579 </rule>
580 </state>
581 <state name="heredoc_single">
582 <rule pattern="^\s*&#39;&#39;&#39;">
583 <token type="LiteralStringHeredoc"/>
584 <pop depth="1"/>
585 </rule>
586 <rule>
587 <include state="heredoc_interpol"/>
588 </rule>
589 </state>
590 <state name="heredoc_interpol">
591 <rule pattern="[^#\\\n]+">
592 <token type="LiteralStringHeredoc"/>
593 </rule>
594 <rule>
595 <include state="escapes"/>
596 </rule>
597 <rule pattern="\\.">
598 <token type="LiteralStringHeredoc"/>
599 </rule>
600 <rule pattern="\n+">
601 <token type="LiteralStringHeredoc"/>
602 </rule>
603 <rule>
604 <include state="interpol"/>
605 </rule>
606 </state>
607 <state name="string_single">
608 <rule pattern="[^#&#39;\\]+">
609 <token type="LiteralStringSingle"/>
610 </rule>
611 <rule>
612 <include state="escapes"/>
613 </rule>
614 <rule pattern="\\.">
615 <token type="LiteralStringSingle"/>
616 </rule>
617 <rule pattern="(&#39;)">
618 <bygroups>
619 <token type="LiteralStringSingle"/>
620 </bygroups>
621 <pop depth="1"/>
622 </rule>
623 <rule>
624 <include state="interpol"/>
625 </rule>
626 </state>
627 <state name="string_double_atom">
628 <rule pattern="[^#&#34;\\]+">
629 <token type="LiteralStringSymbol"/>
630 </rule>
631 <rule>
632 <include state="escapes"/>
633 </rule>
634 <rule pattern="\\.">
635 <token type="LiteralStringSymbol"/>
636 </rule>
637 <rule pattern="(&#34;)">
638 <bygroups>
639 <token type="LiteralStringSymbol"/>
640 </bygroups>
641 <pop depth="1"/>
642 </rule>
643 <rule>
644 <include state="interpol"/>
645 </rule>
646 </state>
647 <state name="ab-no-intp">
648 <rule pattern="[^&gt;\\]+">
649 <token type="LiteralStringOther"/>
650 </rule>
651 <rule pattern="\\.">
652 <token type="LiteralStringOther"/>
653 </rule>
654 <rule pattern="&gt;[a-zA-Z]*">
655 <token type="LiteralStringOther"/>
656 <pop depth="1"/>
657 </rule>
658 </state>
659 <state name="ab-intp">
660 <rule pattern="[^#&gt;\\]+">
661 <token type="LiteralStringOther"/>
662 </rule>
663 <rule>
664 <include state="escapes"/>
665 </rule>
666 <rule pattern="\\.">
667 <token type="LiteralStringOther"/>
668 </rule>
669 <rule pattern="&gt;[a-zA-Z]*">
670 <token type="LiteralStringOther"/>
671 <pop depth="1"/>
672 </rule>
673 <rule>
674 <include state="interpol"/>
675 </rule>
676 </state>
677 <state name="quot-no-intp">
678 <rule pattern="[^&#34;\\]+">
679 <token type="LiteralStringOther"/>
680 </rule>
681 <rule pattern="\\.">
682 <token type="LiteralStringOther"/>
683 </rule>
684 <rule pattern="&#34;[a-zA-Z]*">
685 <token type="LiteralStringOther"/>
686 <pop depth="1"/>
687 </rule>
688 </state>
689 <state name="triapos-no-intp">
690 <rule pattern="^\s*&#39;&#39;&#39;">
691 <token type="LiteralStringHeredoc"/>
692 <pop depth="1"/>
693 </rule>
694 <rule>
695 <include state="heredoc_no_interpol"/>
696 </rule>
697 </state>
698 <state name="string_double">
699 <rule pattern="[^#&#34;\\]+">
700 <token type="LiteralStringDouble"/>
701 </rule>
702 <rule>
703 <include state="escapes"/>
704 </rule>
705 <rule pattern="\\.">
706 <token type="LiteralStringDouble"/>
707 </rule>
708 <rule pattern="(&#34;)">
709 <bygroups>
710 <token type="LiteralStringDouble"/>
711 </bygroups>
712 <pop depth="1"/>
713 </rule>
714 <rule>
715 <include state="interpol"/>
716 </rule>
717 </state>
718 <state name="escapes">
719 <rule pattern="(\\x\{)([\da-fA-F]+)(\})">
720 <bygroups>
721 <token type="LiteralStringEscape"/>
722 <token type="LiteralNumberHex"/>
723 <token type="LiteralStringEscape"/>
724 </bygroups>
725 </rule>
726 <rule pattern="(\\x[\da-fA-F]{1,2})">
727 <token type="LiteralStringEscape"/>
728 </rule>
729 <rule pattern="(\\[abdefnrstv])">
730 <token type="LiteralStringEscape"/>
731 </rule>
732 </state>
733 <state name="triquot-no-intp">
734 <rule pattern="^\s*&#34;&#34;&#34;">
735 <token type="LiteralStringHeredoc"/>
736 <pop depth="1"/>
737 </rule>
738 <rule>
739 <include state="heredoc_no_interpol"/>
740 </rule>
741 </state>
742 </rules>
743</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml
new file mode 100644
index 0000000..ed65efc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml
@@ -0,0 +1,119 @@
1<lexer>
2 <config>
3 <name>Elm</name>
4 <alias>elm</alias>
5 <filename>*.elm</filename>
6 <mime_type>text/x-elm</mime_type>
7 </config>
8 <rules>
9 <state name="shader">
10 <rule pattern="\|(?!\])">
11 <token type="NameEntity"/>
12 </rule>
13 <rule pattern="\|\]">
14 <token type="NameEntity"/>
15 <pop depth="1"/>
16 </rule>
17 <rule pattern=".*\n">
18 <token type="NameEntity"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="\{-">
23 <token type="CommentMultiline"/>
24 <push state="comment"/>
25 </rule>
26 <rule pattern="--.*">
27 <token type="CommentSingle"/>
28 </rule>
29 <rule pattern="\s+">
30 <token type="Text"/>
31 </rule>
32 <rule pattern="&#34;">
33 <token type="LiteralString"/>
34 <push state="doublequote"/>
35 </rule>
36 <rule pattern="^\s*module\s*">
37 <token type="KeywordNamespace"/>
38 <push state="imports"/>
39 </rule>
40 <rule pattern="^\s*import\s*">
41 <token type="KeywordNamespace"/>
42 <push state="imports"/>
43 </rule>
44 <rule pattern="\[glsl\|.*">
45 <token type="NameEntity"/>
46 <push state="shader"/>
47 </rule>
48 <rule pattern="(import|module|alias|where|port|else|type|case|then|let|as|of|if|in)\b">
49 <token type="KeywordReserved"/>
50 </rule>
51 <rule pattern="[A-Z]\w*">
52 <token type="KeywordType"/>
53 </rule>
54 <rule pattern="^main ">
55 <token type="KeywordReserved"/>
56 </rule>
57 <rule pattern="\((&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)\)">
58 <token type="NameFunction"/>
59 </rule>
60 <rule pattern="(&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)">
61 <token type="NameFunction"/>
62 </rule>
63 <rule>
64 <include state="numbers"/>
65 </rule>
66 <rule pattern="[a-z_][a-zA-Z_\&#39;]*">
67 <token type="NameVariable"/>
68 </rule>
69 <rule pattern="[,()\[\]{}]">
70 <token type="Punctuation"/>
71 </rule>
72 </state>
73 <state name="comment">
74 <rule pattern="-(?!\})">
75 <token type="CommentMultiline"/>
76 </rule>
77 <rule pattern="\{-">
78 <token type="CommentMultiline"/>
79 <push state="comment"/>
80 </rule>
81 <rule pattern="[^-}]">
82 <token type="CommentMultiline"/>
83 </rule>
84 <rule pattern="-\}">
85 <token type="CommentMultiline"/>
86 <pop depth="1"/>
87 </rule>
88 </state>
89 <state name="doublequote">
90 <rule pattern="\\u[0-9a-fA-F]{4}">
91 <token type="LiteralStringEscape"/>
92 </rule>
93 <rule pattern="\\[nrfvb\\&#34;]">
94 <token type="LiteralStringEscape"/>
95 </rule>
96 <rule pattern="[^&#34;]">
97 <token type="LiteralString"/>
98 </rule>
99 <rule pattern="&#34;">
100 <token type="LiteralString"/>
101 <pop depth="1"/>
102 </rule>
103 </state>
104 <state name="imports">
105 <rule pattern="\w+(\.\w+)*">
106 <token type="NameClass"/>
107 <pop depth="1"/>
108 </rule>
109 </state>
110 <state name="numbers">
111 <rule pattern="_?\d+\.(?=\d+)">
112 <token type="LiteralNumberFloat"/>
113 </rule>
114 <rule pattern="_?\d+">
115 <token type="LiteralNumberInteger"/>
116 </rule>
117 </state>
118 </rules>
119</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml
new file mode 100644
index 0000000..668bc62
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/emacslisp.xml
@@ -0,0 +1,132 @@
1<lexer>
2 <config>
3 <name>EmacsLisp</name>
4 <alias>emacs</alias>
5 <alias>elisp</alias>
6 <alias>emacs-lisp</alias>
7 <filename>*.el</filename>
8 <mime_type>text/x-elisp</mime_type>
9 <mime_type>application/x-elisp</mime_type>
10 </config>
11 <rules>
12 <state name="string">
13 <rule pattern="[^&#34;\\`]+">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="`((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\&#39;">
17 <token type="LiteralStringSymbol"/>
18 </rule>
19 <rule pattern="`">
20 <token type="LiteralString"/>
21 </rule>
22 <rule pattern="\\.">
23 <token type="LiteralString"/>
24 </rule>
25 <rule pattern="\\\n">
26 <token type="LiteralString"/>
27 </rule>
28 <rule pattern="&#34;">
29 <token type="LiteralString"/>
30 <pop depth="1"/>
31 </rule>
32 </state>
33 <state name="root">
34 <rule>
35 <push state="body"/>
36 </rule>
37 </state>
38 <state name="body">
39 <rule pattern="\s+">
40 <token type="Text"/>
41 </rule>
42 <rule pattern=";.*$">
43 <token type="CommentSingle"/>
44 </rule>
45 <rule pattern="&#34;">
46 <token type="LiteralString"/>
47 <push state="string"/>
48 </rule>
49 <rule pattern="\?([^\\]|\\.)">
50 <token type="LiteralStringChar"/>
51 </rule>
52 <rule pattern=":((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
53 <token type="NameBuiltin"/>
54 </rule>
55 <rule pattern="::((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
56 <token type="LiteralStringSymbol"/>
57 </rule>
58 <rule pattern="&#39;((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
59 <token type="LiteralStringSymbol"/>
60 </rule>
61 <rule pattern="&#39;">
62 <token type="Operator"/>
63 </rule>
64 <rule pattern="`">
65 <token type="Operator"/>
66 </rule>
67 <rule pattern="[-+]?\d+\.?(?=[ &#34;()\]\&#39;\n,;`])">
68 <token type="LiteralNumberInteger"/>
69 </rule>
70 <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\]\&#39;\n,;`])">
71 <token type="LiteralNumber"/>
72 </rule>
73 <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\]\&#39;\n,;`])">
74 <token type="LiteralNumberFloat"/>
75 </rule>
76 <rule pattern="\[|\]">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="#:((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
80 <token type="LiteralStringSymbol"/>
81 </rule>
82 <rule pattern="#\^\^?">
83 <token type="Operator"/>
84 </rule>
85 <rule pattern="#\&#39;">
86 <token type="NameFunction"/>
87 </rule>
88 <rule pattern="#[bB][+-]?[01]+(/[01]+)?">
89 <token type="LiteralNumberBin"/>
90 </rule>
91 <rule pattern="#[oO][+-]?[0-7]+(/[0-7]+)?">
92 <token type="LiteralNumberOct"/>
93 </rule>
94 <rule pattern="#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?">
95 <token type="LiteralNumberHex"/>
96 </rule>
97 <rule pattern="#\d+r[+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?">
98 <token type="LiteralNumber"/>
99 </rule>
100 <rule pattern="#\d+=">
101 <token type="Operator"/>
102 </rule>
103 <rule pattern="#\d+#">
104 <token type="Operator"/>
105 </rule>
106 <rule pattern="(,@|,|\.|:)">
107 <token type="Operator"/>
108 </rule>
109 <rule pattern="(t|nil)(?=[ &#34;()\]\&#39;\n,;`])">
110 <token type="NameConstant"/>
111 </rule>
112 <rule pattern="\*((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\*">
113 <token type="NameVariableGlobal"/>
114 </rule>
115 <rule pattern="((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
116 <token type="NameVariable"/>
117 </rule>
118 <rule pattern="#\(">
119 <token type="Operator"/>
120 <push state="body"/>
121 </rule>
122 <rule pattern="\(">
123 <token type="Punctuation"/>
124 <push state="body"/>
125 </rule>
126 <rule pattern="\)">
127 <token type="Punctuation"/>
128 <pop depth="1"/>
129 </rule>
130 </state>
131 </rules>
132</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml
new file mode 100644
index 0000000..b186588
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/erlang.xml
@@ -0,0 +1,166 @@
1<lexer>
2 <config>
3 <name>Erlang</name>
4 <alias>erlang</alias>
5 <filename>*.erl</filename>
6 <filename>*.hrl</filename>
7 <filename>*.es</filename>
8 <filename>*.escript</filename>
9 <mime_type>text/x-erlang</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="%.*\n">
17 <token type="Comment"/>
18 </rule>
19 <rule pattern="(receive|after|begin|catch|query|case|cond|when|let|fun|end|try|of|if)\b">
20 <token type="Keyword"/>
21 </rule>
22 <rule pattern="(localtime_to_universaltime|universaltime_to_localtime|list_to_existing_atom|check_process_code|bitstring_to_list|list_to_bitstring|function_exported|is_process_alive|iolist_to_binary|bump_reductions|garbage_collect|process_display|suspend_process|list_to_integer|disconnect_node|integer_to_list|trace_delivered|send_nosuspend|list_to_binary|system_profile|binary_to_term|binary_to_list|resume_process|append_element|term_to_binary|system_monitor|list_to_tuple|spawn_monitor|delete_module|trace_pattern|tuple_to_list|list_to_float|float_to_list|module_loaded|port_connect|is_bitstring|port_to_list|monitor_node|process_info|port_control|split_binary|cancel_timer|purge_module|group_leader|list_to_atom|atom_to_list|port_command|is_reference|process_flag|pid_to_list|system_info|start_timer|iolist_size|fun_to_list|load_module|is_function|ref_to_list|list_to_pid|system_flag|make_tuple|is_builtin|unregister|is_boolean|set_cookie|md5_update|spawn_link|setelement|trace_info|read_timer|statistics|send_after|port_close|is_integer|tuple_size|spawn_opt|open_port|is_record|is_binary|md5_final|port_call|port_info|is_number|byte_size|demonitor|register|is_float|bit_size|fun_info|get_keys|is_tuple|is_atom|element|is_list|is_port|monitor|display|whereis|is_pid|memory|unlink|phash2|length|spawn|nodes|trace|round|apply|erase|phash|trunc|float|size|link|node|exit|hash|send|get|md5|put|abs|hd|tl)\b">
23 <token type="NameBuiltin"/>
24 </rule>
25 <rule pattern="(andalso|orelse|bxor|band|bnot|and|bsr|bsl|div|not|rem|bor|xor|or)\b">
26 <token type="OperatorWord"/>
27 </rule>
28 <rule pattern="^-">
29 <token type="Punctuation"/>
30 <push state="directive"/>
31 </rule>
32 <rule pattern="(\+\+?|--?|\*|/|&lt;|&gt;|/=|=:=|=/=|=&lt;|&gt;=|==?|&lt;-|!|\?)">
33 <token type="Operator"/>
34 </rule>
35 <rule pattern="&#34;">
36 <token type="LiteralString"/>
37 <push state="string"/>
38 </rule>
39 <rule pattern="&lt;&lt;">
40 <token type="NameLabel"/>
41 </rule>
42 <rule pattern="&gt;&gt;">
43 <token type="NameLabel"/>
44 </rule>
45 <rule pattern="((?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))(:)">
46 <bygroups>
47 <token type="NameNamespace"/>
48 <token type="Punctuation"/>
49 </bygroups>
50 </rule>
51 <rule pattern="(?:^|(?&lt;=:))((?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))(\s*)(\()">
52 <bygroups>
53 <token type="NameFunction"/>
54 <token type="Text"/>
55 <token type="Punctuation"/>
56 </bygroups>
57 </rule>
58 <rule pattern="[+-]?(?:[2-9]|[12][0-9]|3[0-6])#[0-9a-zA-Z]+">
59 <token type="LiteralNumberInteger"/>
60 </rule>
61 <rule pattern="[+-]?\d+">
62 <token type="LiteralNumberInteger"/>
63 </rule>
64 <rule pattern="[+-]?\d+.\d+">
65 <token type="LiteralNumberFloat"/>
66 </rule>
67 <rule pattern="[]\[:_@\&#34;.{}()|;,]">
68 <token type="Punctuation"/>
69 </rule>
70 <rule pattern="(?:[A-Z_]\w*)">
71 <token type="NameVariable"/>
72 </rule>
73 <rule pattern="(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)">
74 <token type="Name"/>
75 </rule>
76 <rule pattern="\?(?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))">
77 <token type="NameConstant"/>
78 </rule>
79 <rule pattern="\$(?:(?:\\(?:[bdefnrstv\&#39;&#34;\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))|\\[ %]|[^\\])">
80 <token type="LiteralStringChar"/>
81 </rule>
82 <rule pattern="#(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)(:?\.(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;))?">
83 <token type="NameLabel"/>
84 </rule>
85 <rule pattern="\A#!.+\n">
86 <token type="CommentHashbang"/>
87 </rule>
88 <rule pattern="#\{">
89 <token type="Punctuation"/>
90 <push state="map_key"/>
91 </rule>
92 </state>
93 <state name="string">
94 <rule pattern="(?:\\(?:[bdefnrstv\&#39;&#34;\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))">
95 <token type="LiteralStringEscape"/>
96 </rule>
97 <rule pattern="&#34;">
98 <token type="LiteralString"/>
99 <pop depth="1"/>
100 </rule>
101 <rule pattern="~[0-9.*]*[~#+BPWXb-ginpswx]">
102 <token type="LiteralStringInterpol"/>
103 </rule>
104 <rule pattern="[^&#34;\\~]+">
105 <token type="LiteralString"/>
106 </rule>
107 <rule pattern="~">
108 <token type="LiteralString"/>
109 </rule>
110 </state>
111 <state name="directive">
112 <rule pattern="(define)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)))">
113 <bygroups>
114 <token type="NameEntity"/>
115 <token type="Text"/>
116 <token type="Punctuation"/>
117 <token type="NameConstant"/>
118 </bygroups>
119 <pop depth="1"/>
120 </rule>
121 <rule pattern="(record)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)))">
122 <bygroups>
123 <token type="NameEntity"/>
124 <token type="Text"/>
125 <token type="Punctuation"/>
126 <token type="NameLabel"/>
127 </bygroups>
128 <pop depth="1"/>
129 </rule>
130 <rule pattern="(?:[a-z]\w*|&#39;[^\n&#39;]*[^\\]&#39;)">
131 <token type="NameEntity"/>
132 <pop depth="1"/>
133 </rule>
134 </state>
135 <state name="map_key">
136 <rule>
137 <include state="root"/>
138 </rule>
139 <rule pattern="=&gt;">
140 <token type="Punctuation"/>
141 <push state="map_val"/>
142 </rule>
143 <rule pattern=":=">
144 <token type="Punctuation"/>
145 <push state="map_val"/>
146 </rule>
147 <rule pattern="\}">
148 <token type="Punctuation"/>
149 <pop depth="1"/>
150 </rule>
151 </state>
152 <state name="map_val">
153 <rule>
154 <include state="root"/>
155 </rule>
156 <rule pattern=",">
157 <token type="Punctuation"/>
158 <pop depth="1"/>
159 </rule>
160 <rule pattern="(?=\})">
161 <token type="Punctuation"/>
162 <pop depth="1"/>
163 </rule>
164 </state>
165 </rules>
166</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml
new file mode 100644
index 0000000..4743b9a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/factor.xml
@@ -0,0 +1,412 @@
1<lexer>
2 <config>
3 <name>Factor</name>
4 <alias>factor</alias>
5 <filename>*.factor</filename>
6 <mime_type>text/x-factor</mime_type>
7 </config>
8 <rules>
9 <state name="base">
10 <rule pattern="\s+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="((?:MACRO|MEMO|TYPED)?:[:]?)(\s+)(\S+)">
14 <bygroups>
15 <token type="Keyword"/>
16 <token type="Text"/>
17 <token type="NameFunction"/>
18 </bygroups>
19 </rule>
20 <rule pattern="(M:[:]?)(\s+)(\S+)(\s+)(\S+)">
21 <bygroups>
22 <token type="Keyword"/>
23 <token type="Text"/>
24 <token type="NameClass"/>
25 <token type="Text"/>
26 <token type="NameFunction"/>
27 </bygroups>
28 </rule>
29 <rule pattern="(C:)(\s+)(\S+)(\s+)(\S+)">
30 <bygroups>
31 <token type="Keyword"/>
32 <token type="Text"/>
33 <token type="NameFunction"/>
34 <token type="Text"/>
35 <token type="NameClass"/>
36 </bygroups>
37 </rule>
38 <rule pattern="(GENERIC:)(\s+)(\S+)">
39 <bygroups>
40 <token type="Keyword"/>
41 <token type="Text"/>
42 <token type="NameFunction"/>
43 </bygroups>
44 </rule>
45 <rule pattern="(HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)">
46 <bygroups>
47 <token type="Keyword"/>
48 <token type="Text"/>
49 <token type="NameFunction"/>
50 <token type="Text"/>
51 <token type="NameFunction"/>
52 </bygroups>
53 </rule>
54 <rule pattern="\(\s">
55 <token type="NameFunction"/>
56 <push state="stackeffect"/>
57 </rule>
58 <rule pattern=";\s">
59 <token type="Keyword"/>
60 </rule>
61 <rule pattern="(USING:)(\s+)">
62 <bygroups>
63 <token type="KeywordNamespace"/>
64 <token type="Text"/>
65 </bygroups>
66 <push state="vocabs"/>
67 </rule>
68 <rule pattern="(USE:|UNUSE:|IN:|QUALIFIED:)(\s+)(\S+)">
69 <bygroups>
70 <token type="KeywordNamespace"/>
71 <token type="Text"/>
72 <token type="NameNamespace"/>
73 </bygroups>
74 </rule>
75 <rule pattern="(QUALIFIED-WITH:)(\s+)(\S+)(\s+)(\S+)">
76 <bygroups>
77 <token type="KeywordNamespace"/>
78 <token type="Text"/>
79 <token type="NameNamespace"/>
80 <token type="Text"/>
81 <token type="NameNamespace"/>
82 </bygroups>
83 </rule>
84 <rule pattern="(FROM:|EXCLUDE:)(\s+)(\S+)(\s+=&gt;\s)">
85 <bygroups>
86 <token type="KeywordNamespace"/>
87 <token type="Text"/>
88 <token type="NameNamespace"/>
89 <token type="Text"/>
90 </bygroups>
91 <push state="words"/>
92 </rule>
93 <rule pattern="(RENAME:)(\s+)(\S+)(\s+)(\S+)(\s+=&gt;\s+)(\S+)">
94 <bygroups>
95 <token type="KeywordNamespace"/>
96 <token type="Text"/>
97 <token type="NameFunction"/>
98 <token type="Text"/>
99 <token type="NameNamespace"/>
100 <token type="Text"/>
101 <token type="NameFunction"/>
102 </bygroups>
103 </rule>
104 <rule pattern="(ALIAS:|TYPEDEF:)(\s+)(\S+)(\s+)(\S+)">
105 <bygroups>
106 <token type="KeywordNamespace"/>
107 <token type="Text"/>
108 <token type="NameFunction"/>
109 <token type="Text"/>
110 <token type="NameFunction"/>
111 </bygroups>
112 </rule>
113 <rule pattern="(DEFER:|FORGET:|POSTPONE:)(\s+)(\S+)">
114 <bygroups>
115 <token type="KeywordNamespace"/>
116 <token type="Text"/>
117 <token type="NameFunction"/>
118 </bygroups>
119 </rule>
120 <rule pattern="(TUPLE:|ERROR:)(\s+)(\S+)(\s+&lt;\s+)(\S+)">
121 <bygroups>
122 <token type="Keyword"/>
123 <token type="Text"/>
124 <token type="NameClass"/>
125 <token type="Text"/>
126 <token type="NameClass"/>
127 </bygroups>
128 <push state="slots"/>
129 </rule>
130 <rule pattern="(TUPLE:|ERROR:|BUILTIN:)(\s+)(\S+)">
131 <bygroups>
132 <token type="Keyword"/>
133 <token type="Text"/>
134 <token type="NameClass"/>
135 </bygroups>
136 <push state="slots"/>
137 </rule>
138 <rule pattern="(MIXIN:|UNION:|INTERSECTION:)(\s+)(\S+)">
139 <bygroups>
140 <token type="Keyword"/>
141 <token type="Text"/>
142 <token type="NameClass"/>
143 </bygroups>
144 </rule>
145 <rule pattern="(PREDICATE:)(\s+)(\S+)(\s+&lt;\s+)(\S+)">
146 <bygroups>
147 <token type="Keyword"/>
148 <token type="Text"/>
149 <token type="NameClass"/>
150 <token type="Text"/>
151 <token type="NameClass"/>
152 </bygroups>
153 </rule>
154 <rule pattern="(C:)(\s+)(\S+)(\s+)(\S+)">
155 <bygroups>
156 <token type="Keyword"/>
157 <token type="Text"/>
158 <token type="NameFunction"/>
159 <token type="Text"/>
160 <token type="NameClass"/>
161 </bygroups>
162 </rule>
163 <rule pattern="(INSTANCE:)(\s+)(\S+)(\s+)(\S+)">
164 <bygroups>
165 <token type="Keyword"/>
166 <token type="Text"/>
167 <token type="NameClass"/>
168 <token type="Text"/>
169 <token type="NameClass"/>
170 </bygroups>
171 </rule>
172 <rule pattern="(SLOT:)(\s+)(\S+)">
173 <bygroups>
174 <token type="Keyword"/>
175 <token type="Text"/>
176 <token type="NameFunction"/>
177 </bygroups>
178 </rule>
179 <rule pattern="(SINGLETON:)(\s+)(\S+)">
180 <bygroups>
181 <token type="Keyword"/>
182 <token type="Text"/>
183 <token type="NameClass"/>
184 </bygroups>
185 </rule>
186 <rule pattern="SINGLETONS:">
187 <token type="Keyword"/>
188 <push state="classes"/>
189 </rule>
190 <rule pattern="(CONSTANT:|SYMBOL:|MAIN:|HELP:)(\s+)(\S+)">
191 <bygroups>
192 <token type="Keyword"/>
193 <token type="Text"/>
194 <token type="NameFunction"/>
195 </bygroups>
196 </rule>
197 <rule pattern="SYMBOLS:\s">
198 <token type="Keyword"/>
199 <push state="words"/>
200 </rule>
201 <rule pattern="SYNTAX:\s">
202 <token type="Keyword"/>
203 </rule>
204 <rule pattern="ALIEN:\s">
205 <token type="Keyword"/>
206 </rule>
207 <rule pattern="(STRUCT:)(\s+)(\S+)">
208 <bygroups>
209 <token type="Keyword"/>
210 <token type="Text"/>
211 <token type="NameClass"/>
212 </bygroups>
213 </rule>
214 <rule pattern="(FUNCTION:)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)">
215 <bygroups>
216 <token type="KeywordNamespace"/>
217 <token type="Text"/>
218 <token type="NameFunction"/>
219 <token type="Text"/>
220 </bygroups>
221 </rule>
222 <rule pattern="(FUNCTION-ALIAS:)(\s+)(\S+)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)">
223 <bygroups>
224 <token type="KeywordNamespace"/>
225 <token type="Text"/>
226 <token type="NameFunction"/>
227 <token type="Text"/>
228 <token type="NameFunction"/>
229 <token type="Text"/>
230 </bygroups>
231 </rule>
232 <rule pattern="(?:&lt;PRIVATE|PRIVATE&gt;)\s">
233 <token type="KeywordNamespace"/>
234 </rule>
235 <rule pattern="&#34;&#34;&#34;\s+(?:.|\n)*?\s+&#34;&#34;&#34;">
236 <token type="LiteralString"/>
237 </rule>
238 <rule pattern="&#34;(?:\\\\|\\&#34;|[^&#34;])*&#34;">
239 <token type="LiteralString"/>
240 </rule>
241 <rule pattern="\S+&#34;\s+(?:\\\\|\\&#34;|[^&#34;])*&#34;">
242 <token type="LiteralString"/>
243 </rule>
244 <rule pattern="CHAR:\s+(?:\\[\\abfnrstv]|[^\\]\S*)\s">
245 <token type="LiteralStringChar"/>
246 </rule>
247 <rule pattern="!\s+.*$">
248 <token type="Comment"/>
249 </rule>
250 <rule pattern="#!\s+.*$">
251 <token type="Comment"/>
252 </rule>
253 <rule pattern="/\*\s+(?:.|\n)*?\s\*/\s">
254 <token type="Comment"/>
255 </rule>
256 <rule pattern="[tf]\s">
257 <token type="NameConstant"/>
258 </rule>
259 <rule pattern="[\\$]\s+\S+">
260 <token type="NameConstant"/>
261 </rule>
262 <rule pattern="M\\\s+\S+\s+\S+">
263 <token type="NameConstant"/>
264 </rule>
265 <rule pattern="[+-]?(?:[\d,]*\d)?\.(?:\d([\d,]*\d)?)?(?:[eE][+-]?\d+)?\s">
266 <token type="LiteralNumber"/>
267 </rule>
268 <rule pattern="[+-]?\d(?:[\d,]*\d)?(?:[eE][+-]?\d+)?\s">
269 <token type="LiteralNumber"/>
270 </rule>
271 <rule pattern="0x[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s">
272 <token type="LiteralNumber"/>
273 </rule>
274 <rule pattern="NAN:\s+[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s">
275 <token type="LiteralNumber"/>
276 </rule>
277 <rule pattern="0b[01]+\s">
278 <token type="LiteralNumberBin"/>
279 </rule>
280 <rule pattern="0o[0-7]+\s">
281 <token type="LiteralNumberOct"/>
282 </rule>
283 <rule pattern="(?:\d([\d,]*\d)?)?\+\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s">
284 <token type="LiteralNumber"/>
285 </rule>
286 <rule pattern="(?:\-\d([\d,]*\d)?)?\-\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s">
287 <token type="LiteralNumber"/>
288 </rule>
289 <rule pattern="(?:deprecated|final|foldable|flushable|inline|recursive)\s">
290 <token type="Keyword"/>
291 </rule>
292 <rule pattern="(identity-hashcode|callstack&gt;array|identity-tuple\?|identity-tuple|retainstack|callstack\?|tri-curry\*|tri-curry@|tri-curry|&lt;wrapper&gt;|datastack|bi-curry@|bi-curry\*|hashcode\*|callstack|\?execute|hashcode|boolean\?|compose\?|&gt;boolean|wrapper\?|bi-curry|unless\*|boolean|assert\?|\(clone\)|either\?|prepose|assert=|execute|wrapper|compose|3curry|assert|2curry|curry\?|object|equal\?|tuple\?|unless|build|3drop|same\?|2tri\*|2tri@|both\?|3keep|4drop|throw|2over|swapd|clear|2keep|2drop|until|curry|4keep|clone|while|tuple|when\*|-rot|tri@|dupd|drop|tri\*|call|when|with|4dup|4dip|3tri|3dup|3dip|2tri|keep|loop|most|2nip|swap|2dup|null|2dip|2bi\*|2bi@|pick|over|and|rot|not|nip|new|if\*|tri|2bi|boa|eq\?|dup|3bi|dip|die|bi\*|bi@|\?if|xor|bi|do|if|or|\?|=)\s">
293 <token type="NameBuiltin"/>
294 </rule>
295 <rule pattern="(assoc-clone-like|assoc-filter-as|assoc-partition|assoc-intersect|assoc-hashcode|assoc-combine|assoc-filter!|assoc-subset\?|assoc-union!|maybe-set-at|extract-keys|assoc-map-as|assoc-differ|assoc-refine|assoc-empty\?|assoc-filter|assoc-diff!|sift-values|assoc-union|assoc-stack|clear-assoc|assoc-all\?|delete-at\*|assoc-find|substitute|assoc-each|assoc-size|assoc-diff|assoc-any\?|assoc-like|rename-at|sift-keys|new-assoc|map&gt;assoc|value-at\*|assoc-map|delete-at|change-at|assoc&gt;map|value-at|push-at|assoc=|values|set-at|&lt;enum&gt;|inc-at|2cache|value\?|assoc\?|&gt;alist|cache|enum\?|assoc|unzip|key\?|enum|keys|\?at|\?of|zip|at\+|at\*|at|of)\s">
296 <token type="NameBuiltin"/>
297 </rule>
298 <rule pattern="(shallow-spread&gt;quot|recursive-hashcode|linear-case-quot|deep-spread&gt;quot|to-fixed-point|execute-effect|wrong-values\?|4cleave&gt;quot|2cleave&gt;quot|wrong-values|3cleave&gt;quot|cleave&gt;quot|call-effect|alist&gt;quot|case&gt;quot|case-find|cond&gt;quot|no-case\?|no-cond\?|no-case|no-cond|4cleave|3cleave|2cleave|cleave|spread|cond|case)\s">
299 <token type="NameBuiltin"/>
300 </rule>
301 <rule pattern="(log2-expects-positive\?|integer&gt;fixnum-strict|log2-expects-positive|out-of-fixnum-range\?|out-of-fixnum-range|find-last-integer|next-power-of-2|\(all-integers\?\)|integer&gt;fixnum|\(find-integer\)|\(each-integer\)|imaginary-part|fp-nan-payload|all-integers\?|find-integer|each-integer|fp-infinity\?|fp-special\?|fp-bitwise=|bits&gt;double|double&gt;bits|power-of-2\?|unless-zero|denominator|next-float|bits&gt;float|float&gt;bits|prev-float|unordered\?|real-part|when-zero|numerator|rational\?|&gt;integer|rational|complex\?|&lt;fp-nan&gt;|fp-qnan\?|fp-snan\?|integer\?|number=|bignum\?|integer|&gt;fixnum|fp-sign|fp-nan\?|fixnum\?|number\?|complex|if-zero|&gt;bignum|bignum|number|fixnum|float\?|bitxor|ratio\?|bitnot|bitand|&gt;float|real\?|bitor|zero\?|even\?|times|shift|float|recip|align|ratio|neg\?|real|log2|bit\?|odd\?|/mod|\?1\+|mod|rem|neg|sgn|u&lt;=|u&gt;=|abs|u&gt;|2/|2\^|/i|/f|sq|&lt;=|u&lt;|&gt;=|-|\+|&lt;|\*|/|&gt;)\s">
302 <token type="NameBuiltin"/>
303 </rule>
304 <rule pattern="(non-negative-integer-expected\?|non-negative-integer-expected|immutable-sequence\?|immutable-sequence|virtual-sequence\?|sequence-hashcode|cartesian-product|check-slice-error|unclip-last-slice|assert-sequence=|assert-sequence\?|virtual-exemplar|virtual-sequence|assert-sequence|trim-head-slice|last-index-from|find-index-from|trim-tail-slice|find-last-from|cartesian-each|collapse-slice|but-last-slice|map-find-last|cartesian-map|collector-for|bounds-error\?|accumulate-as|replace-slice|bounds-check\?|binary-reduce|new-resizable|unless-empty|delete-slice|replicate-as|map-integers|selector-for|bounds-check|reduce-index|bounds-error|unclip-slice|new-sequence|&lt;repetition&gt;|slice-error\?|slice-error|unclip-last|drop-prefix|supremum-by|push-either|2map-reduce|accumulate!|tail-slice\*|repetition\?|check-slice|iota-tuple\?|remove-nth!|sum-lengths|head-slice\*|find-index|clone-like|delete-all|change-nth|prepend-as|member-eq\?|max-length|each-index|map-reduce|iota-tuple|produce-as|snip-slice|accumulate|remove-eq!|last-index|min-length|remove-nth|&lt;reversed&gt;|repetition|tail-slice|3append-as|when-empty|interleave|insert-nth|infimum-by|index-from|set-second|immutable\?|rest-slice|set-fourth|head-slice|trim-slice|set-length|set-third|concat-as|immutable|trim-tail|cut-slice|collector|set-first|sequence\?|sequence=|midpoint@|trim-head|each-from|reversed\?|map-index|partition|find-last|2selector|2sequence|replicate|find-from|filter-as|3sequence|append-as|4sequence|remove-eq|1sequence|virtual@|push-all|lengthen|shorter\?|map-find|reverse!|reversed|exchange|pad-tail|pad-head|surround|selector|shortest|sequence|set-last|mismatch|supremum|new-like|if-empty|but-last|\?set-nth|filter!|harvest|member\?|map-sum|indices|padding|set-nth|2map-as|shorter|shorten|prepend|infimum|2reduce|append!|product|subseq\?|longest|longer\?|push-if|suffix!|reverse|join-as|remove!|3append|\?second|3map-as|&lt;slice&gt;|produce|length|\?first|start\*|longer|remove|subseq|unclip|first2|first3|reduce|second|follow|filter|slice\?|map-as|empty\?|fourth|suffix|halves|concat|first4|prefix|append|index|short|2all\?|count|2each|third|tail\*|slice|first|tail\?|head\*|3each|head\?|start|\?last|join|iota|last|like|snip|map!|head|glue|move|tail|2map|find|sift|flip|nths|trim|each|cut\*|3map|pop\*|copy|any\?|all\?|\?nth|push|rest|sum|nth|pop|map|cut)\s">
305 <token type="NameBuiltin"/>
306 </rule>
307 <rule pattern="(init-namespaces|with-variables|with-variable|set-namestack|change-global|with-global|initialize|get-global|set-global|with-scope|make-assoc|is-global|namespace|namestack|counter|change|toggle|global|set|get|dec|off|inc|on|\+@)\s">
308 <token type="NameBuiltin"/>
309 </rule>
310 <rule pattern="(resize-array|&lt;array&gt;|1array|2array|3array|4array|&gt;array|array\?|array|pair\?|pair)\s">
311 <token type="NameBuiltin"/>
312 </rule>
313 <rule pattern="(\(stream-contents-by-length-or-block\)|with-input-output\+error-streams\*|with-input-output\+error-streams|\(stream-contents-by-element\)|\(stream-contents-by-length\)|stream-read-partial-unsafe|\(stream-contents-by-block\)|with-output\+error-stream\*|\(each-stream-block-slice\)|stream-read-partial-into|with-output\+error-stream|each-stream-block-slice|invalid-read-buffer\?|stream-read-partial|stream-element-type|\(each-stream-block\)|with-output-stream\*|invalid-read-buffer|with-output-stream|with-input-stream\*|stream-read-unsafe|with-error-stream\*|with-error-stream|stream-read-until|each-stream-block|with-output&gt;error|with-input-stream|with-error&gt;output|read-partial-into|stream-contents\*|each-stream-line|stream-seekable\?|stream-read-into|each-block-slice|each-block-size|stream-contents|bad-seek-type\?|seek-absolute\?|output-stream\?|seek-relative\?|stream-write1|with-streams\*|output-stream|stream-length|bad-seek-type|seek-absolute|input-stream\?|stream-readln|seek-relative|with-streams|read-partial|stream-copy\*|stream-flush|stream-read1|stream-lines|stream-write|stream-print|error-stream|input-stream|stream-tell|\+character\+|stream-copy|each-morsel|seek-output|stream-read|tell-output|stream-seek|read-until|seek-input|each-block|tell-input|each-line|seek-end\?|read-into|stream-nl|stream-bl|contents|seek-end|write1|\+byte\+|readln|write|read1|print|flush|lines|read|nl|bl)\s">
314 <token type="NameBuiltin"/>
315 </rule>
316 <rule pattern="(resize-string|&lt;string&gt;|1string|&gt;string|string\?|string)\s">
317 <token type="NameBuiltin"/>
318 </rule>
319 <rule pattern="(&lt;vector&gt;|1vector|&gt;vector|vector\?|vector|\?push)\s">
320 <token type="NameBuiltin"/>
321 </rule>
322 <rule pattern="(current-continuation|return-continuation|callback-error-hook|error-continuation|attempt-all-error\?|thread-error-hook|attempt-all-error|rethrow-restarts|continue-restart|compute-restarts|error-in-thread|throw-continue|throw-restarts|with-datastack|&lt;continuation&gt;|original-error|ignore-errors|continue-with|continuation\?|in-callback\?|continuation|error-thread|attempt-all|&lt;condition&gt;|with-return|condition\?|&lt;restart&gt;|condition|continue|restart\?|restarts|rethrow|callcc0|recover|restart|cleanup|callcc1|return|error|ifcc)\s">
323 <token type="NameBuiltin"/>
324 </rule>
325 <rule pattern="\S+">
326 <token type="Text"/>
327 </rule>
328 </state>
329 <state name="stackeffect">
330 <rule pattern="\s+">
331 <token type="Text"/>
332 </rule>
333 <rule pattern="\(\s+">
334 <token type="NameFunction"/>
335 <push state="stackeffect"/>
336 </rule>
337 <rule pattern="\)\s">
338 <token type="NameFunction"/>
339 <pop depth="1"/>
340 </rule>
341 <rule pattern="--\s">
342 <token type="NameFunction"/>
343 </rule>
344 <rule pattern="\S+">
345 <token type="NameVariable"/>
346 </rule>
347 </state>
348 <state name="slots">
349 <rule pattern="\s+">
350 <token type="Text"/>
351 </rule>
352 <rule pattern=";\s">
353 <token type="Keyword"/>
354 <pop depth="1"/>
355 </rule>
356 <rule pattern="(\{\s+)(\S+)(\s+[^}]+\s+\}\s)">
357 <bygroups>
358 <token type="Text"/>
359 <token type="NameVariable"/>
360 <token type="Text"/>
361 </bygroups>
362 </rule>
363 <rule pattern="\S+">
364 <token type="NameVariable"/>
365 </rule>
366 </state>
367 <state name="vocabs">
368 <rule pattern="\s+">
369 <token type="Text"/>
370 </rule>
371 <rule pattern=";\s">
372 <token type="Keyword"/>
373 <pop depth="1"/>
374 </rule>
375 <rule pattern="\S+">
376 <token type="NameNamespace"/>
377 </rule>
378 </state>
379 <state name="classes">
380 <rule pattern="\s+">
381 <token type="Text"/>
382 </rule>
383 <rule pattern=";\s">
384 <token type="Keyword"/>
385 <pop depth="1"/>
386 </rule>
387 <rule pattern="\S+">
388 <token type="NameClass"/>
389 </rule>
390 </state>
391 <state name="words">
392 <rule pattern="\s+">
393 <token type="Text"/>
394 </rule>
395 <rule pattern=";\s">
396 <token type="Keyword"/>
397 <pop depth="1"/>
398 </rule>
399 <rule pattern="\S+">
400 <token type="NameFunction"/>
401 </rule>
402 </state>
403 <state name="root">
404 <rule pattern="#!.*$">
405 <token type="CommentPreproc"/>
406 </rule>
407 <rule>
408 <push state="base"/>
409 </rule>
410 </state>
411 </rules>
412</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml
new file mode 100644
index 0000000..b9b6d59
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fennel.xml
@@ -0,0 +1,68 @@
1<lexer>
2 <config>
3 <name>Fennel</name>
4 <alias>fennel</alias>
5 <alias>fnl</alias>
6 <filename>*.fennel</filename>
7 <mime_type>text/x-fennel</mime_type>
8 <mime_type>application/x-fennel</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern=";.*$">
13 <token type="CommentSingle"/>
14 </rule>
15 <rule pattern="\s+">
16 <token type="TextWhitespace"/>
17 </rule>
18 <rule pattern="-?\d+\.\d+">
19 <token type="LiteralNumberFloat"/>
20 </rule>
21 <rule pattern="-?\d+">
22 <token type="LiteralNumberInteger"/>
23 </rule>
24 <rule pattern="0x-?[abcdef\d]+">
25 <token type="LiteralNumberHex"/>
26 </rule>
27 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
31 <token type="LiteralStringSymbol"/>
32 </rule>
33 <rule pattern="\\(.|[a-z]+)">
34 <token type="LiteralStringChar"/>
35 </rule>
36 <rule pattern="::?#?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
37 <token type="LiteralStringSymbol"/>
38 </rule>
39 <rule pattern="~@|[`\&#39;#^~&amp;@]">
40 <token type="Operator"/>
41 </rule>
42 <rule pattern="(require-macros|set-forcibly!|import-macros|eval-compiler|pick-values|accumulate|macrodebug|pick-args|with-open|icollect|partial|comment|include|collect|hashfn|rshift|values|length|lshift|quote|match|while|doto|band|when|bnot|bxor|not=|tset|-\?&gt;&gt;|each|-&gt;&gt;|let|doc|for|and|set|not|-\?&gt;|bor|lua|\?\.|do|&gt;=|&lt;=|//|\.\.|-&gt;|or|if|~=|\^|&gt;|=|&lt;|:|/|\.|-|\+|\*|%|#) ">
43 <token type="Keyword"/>
44 </rule>
45 <rule pattern="(global|lambda|macros|local|macro|var|fn|λ) ">
46 <token type="KeywordDeclaration"/>
47 </rule>
48 <rule pattern="(debug\.setuservalue|debug\.getmetatable|debug\.getuservalue|package\.searchpath|debug\.setmetatable|debug\.upvaluejoin|debug\.getregistry|coroutine\.running|coroutine\.create|debug\.setupvalue|debug\.getupvalue|coroutine\.status|coroutine\.resume|debug\.upvalueid|package\.loadlib|debug\.traceback|math\.randomseed|coroutine\.yield|collectgarbage|debug\.getlocal|package\.seeall|string\.reverse|coroutine\.wrap|debug\.setlocal|bit32\.replace|bit32\.lrotate|debug\.gethook|debug\.getinfo|bit32\.extract|string\.gmatch|string\.format|bit32\.arshift|bit32\.rrotate|debug\.sethook|table\.concat|os\.setlocale|table\.remove|string\.lower|bit32\.rshift|bit32\.lshift|string\.match|table\.unpack|setmetatable|getmetatable|table\.insert|string\.upper|string\.byte|debug\.debug|string\.gsub|bit32\.btest|math\.random|string\.find|string\.dump|os\.difftime|string\.char|table\.sort|loadstring|io\.tmpfile|bit32\.band|bit32\.bnot|string\.sub|os\.execute|os\.tmpname|table\.maxn|math\.log10|math\.atan2|table\.pack|math\.frexp|math\.ldexp|bit32\.bxor|string\.len|math\.floor|string\.rep|coroutine|math\.cosh|math\.ceil|math\.atan|math\.asin|math\.acos|math\.modf|os\.rename|os\.remove|io\.output|os\.getenv|bit32\.bor|math\.sinh|math\.fmod|math\.tanh|math\.sqrt|math\.cos|math\.tan|io\.lines|os\.clock|tostring|io\.input|math\.sin|tonumber|loadfile|math\.rad|math\.pow|io\.flush|math\.abs|math\.min|rawequal|math\.max|math\.log|io\.close|io\.popen|math\.exp|math\.deg|io\.write|os\.time|io\.read|io\.open|require|os\.exit|os\.date|package|io\.type|module|select|rawset|rawlen|rawget|unpack|assert|dofile|ipairs|string|xpcall|table|pcall|bit32|print|debug|error|pairs|math|type|next|load|arg|io|os|_G) ">
49 <token type="NameBuiltin"/>
50 </rule>
51 <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
52 <token type="NameFunction"/>
53 </rule>
54 <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
55 <token type="NameVariable"/>
56 </rule>
57 <rule pattern="(\[|\])">
58 <token type="Punctuation"/>
59 </rule>
60 <rule pattern="(\{|\})">
61 <token type="Punctuation"/>
62 </rule>
63 <rule pattern="(\(|\))">
64 <token type="Punctuation"/>
65 </rule>
66 </state>
67 </rules>
68</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml
new file mode 100644
index 0000000..deb7814
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fish.xml
@@ -0,0 +1,159 @@
1<lexer>
2 <config>
3 <name>Fish</name>
4 <alias>fish</alias>
5 <alias>fishshell</alias>
6 <filename>*.fish</filename>
7 <filename>*.load</filename>
8 <mime_type>application/x-fish</mime_type>
9 </config>
10 <rules>
11 <state name="paren">
12 <rule pattern="\)">
13 <token type="Keyword"/>
14 <pop depth="1"/>
15 </rule>
16 <rule>
17 <include state="root"/>
18 </rule>
19 </state>
20 <state name="math">
21 <rule pattern="\)\)">
22 <token type="Keyword"/>
23 <pop depth="1"/>
24 </rule>
25 <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
26 <token type="Operator"/>
27 </rule>
28 <rule pattern="\d+#\d+">
29 <token type="LiteralNumber"/>
30 </rule>
31 <rule pattern="\d+#(?! )">
32 <token type="LiteralNumber"/>
33 </rule>
34 <rule pattern="\d+">
35 <token type="LiteralNumber"/>
36 </rule>
37 <rule>
38 <include state="root"/>
39 </rule>
40 </state>
41 <state name="root">
42 <rule>
43 <include state="basic"/>
44 </rule>
45 <rule>
46 <include state="interp"/>
47 </rule>
48 <rule>
49 <include state="data"/>
50 </rule>
51 </state>
52 <state name="interp">
53 <rule pattern="\$\(\(">
54 <token type="Keyword"/>
55 <push state="math"/>
56 </rule>
57 <rule pattern="\(">
58 <token type="Keyword"/>
59 <push state="paren"/>
60 </rule>
61 <rule pattern="\$#?(\w+|.)">
62 <token type="NameVariable"/>
63 </rule>
64 </state>
65 <state name="basic">
66 <rule pattern="(?&lt;=(?:^|\A|;|&amp;&amp;|\|\||\||\b(continue|function|return|switch|begin|while|break|count|false|block|echo|case|true|else|exit|test|set|cdh|and|pwd|for|end|not|if|cd|or)\b)\s*)(continue|function|return|switch|begin|while|break|count|false|block|test|case|true|echo|exit|else|set|cdh|and|pwd|for|end|not|if|cd|or)(?=;?\b)">
67 <token type="Keyword"/>
68 </rule>
69 <rule pattern="(?&lt;=for\s+\S+\s+)in\b">
70 <token type="Keyword"/>
71 </rule>
72 <rule pattern="\b(fish_update_completions|fish_command_not_found|fish_breakpoint_prompt|fish_status_to_signal|fish_right_prompt|fish_is_root_user|fish_mode_prompt|fish_vcs_prompt|fish_key_reader|fish_svn_prompt|fish_git_prompt|fish_hg_prompt|fish_greeting|fish_add_path|commandline|fish_prompt|fish_indent|fish_config|fish_pager|breakpoint|fish_title|prompt_pwd|functions|set_color|realpath|funcsave|contains|complete|argparse|fish_opt|history|builtin|getopts|suspend|command|mimedb|printf|ulimit|disown|string|source|funced|status|random|isatty|fishd|prevd|vared|umask|nextd|alias|pushd|emit|jobs|popd|help|psub|wait|fish|read|time|exec|eval|math|trap|type|dirs|dirh|abbr|kill|bind|hash|open|fc|bg|fg)\s*\b(?!\.)">
73 <token type="NameBuiltin"/>
74 </rule>
75 <rule pattern="#!.*\n">
76 <token type="CommentHashbang"/>
77 </rule>
78 <rule pattern="#.*\n">
79 <token type="Comment"/>
80 </rule>
81 <rule pattern="\\[\w\W]">
82 <token type="LiteralStringEscape"/>
83 </rule>
84 <rule pattern="(\b\w+)(\s*)(=)">
85 <bygroups>
86 <token type="NameVariable"/>
87 <token type="Text"/>
88 <token type="Operator"/>
89 </bygroups>
90 </rule>
91 <rule pattern="[\[\]()={}]">
92 <token type="Operator"/>
93 </rule>
94 <rule pattern="(?&lt;=\[[^\]]+)\.\.|-(?=[^\[]+\])">
95 <token type="Operator"/>
96 </rule>
97 <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
98 <token type="LiteralString"/>
99 </rule>
100 <rule pattern="(?&lt;=set\s+(?:--?[^\d\W][\w-]*\s+)?)\w+">
101 <token type="NameVariable"/>
102 </rule>
103 <rule pattern="(?&lt;=for\s+)\w[\w-]*(?=\s+in)">
104 <token type="NameVariable"/>
105 </rule>
106 <rule pattern="(?&lt;=function\s+)\w(?:[^\n])*?(?= *[-\n])">
107 <token type="NameFunction"/>
108 </rule>
109 <rule pattern="(?&lt;=(?:^|\b(?:and|or|sudo)\b|;|\|\||&amp;&amp;|\||\(|(?:\b\w+\s*=\S+\s)) *)\w[\w-]*">
110 <token type="NameFunction"/>
111 </rule>
112 </state>
113 <state name="data">
114 <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
115 <token type="LiteralStringDouble"/>
116 </rule>
117 <rule pattern="&#34;">
118 <token type="LiteralStringDouble"/>
119 <push state="string"/>
120 </rule>
121 <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
122 <token type="LiteralStringSingle"/>
123 </rule>
124 <rule pattern="(?s)&#39;.*?&#39;">
125 <token type="LiteralStringSingle"/>
126 </rule>
127 <rule pattern=";">
128 <token type="Punctuation"/>
129 </rule>
130 <rule pattern="&amp;&amp;|\|\||&amp;|\||\^|&lt;|&gt;">
131 <token type="Operator"/>
132 </rule>
133 <rule pattern="\s+">
134 <token type="Text"/>
135 </rule>
136 <rule pattern="\b\d+\b">
137 <token type="LiteralNumber"/>
138 </rule>
139 <rule pattern="(?&lt;=\s+)--?[^\d][\w-]*">
140 <token type="NameAttribute"/>
141 </rule>
142 <rule pattern=".+?">
143 <token type="Text"/>
144 </rule>
145 </state>
146 <state name="string">
147 <rule pattern="&#34;">
148 <token type="LiteralStringDouble"/>
149 <pop depth="1"/>
150 </rule>
151 <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
152 <token type="LiteralStringDouble"/>
153 </rule>
154 <rule>
155 <include state="interp"/>
156 </rule>
157 </state>
158 </rules>
159</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml
new file mode 100644
index 0000000..31096a2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/forth.xml
@@ -0,0 +1,78 @@
1<lexer>
2 <config>
3 <name>Forth</name>
4 <alias>forth</alias>
5 <filename>*.frt</filename>
6 <filename>*.fth</filename>
7 <filename>*.fs</filename>
8 <mime_type>application/x-forth</mime_type>
9 <case_insensitive>true</case_insensitive>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="\\.*?\n">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="\([\s].*?\)">
20 <token type="CommentSingle"/>
21 </rule>
22 <rule pattern="(:|variable|constant|value|buffer:)(\s+)">
23 <bygroups>
24 <token type="KeywordNamespace"/>
25 <token type="Text"/>
26 </bygroups>
27 <push state="worddef"/>
28 </rule>
29 <rule pattern="([.sc]&#34;)(\s+?)">
30 <bygroups>
31 <token type="LiteralString"/>
32 <token type="Text"/>
33 </bygroups>
34 <push state="stringdef"/>
35 </rule>
36 <rule pattern="(blk|block|buffer|evaluate|flush|load|save-buffers|update|empty-buffers|list|refill|scr|thru|\#s|\*\/mod|\+loop|\/mod|0&lt;|0=|1\+|1-|2!|2\*|2\/|2@|2drop|2dup|2over|2swap|&gt;body|&gt;in|&gt;number|&gt;r|\?dup|abort|abort\&#34;|abs|accept|align|aligned|allot|and|base|begin|bl|c!|c,|c@|cell\+|cells|char|char\+|chars|constant|count|cr|create|decimal|depth|do|does&gt;|drop|dup|else|emit|environment\?|evaluate|execute|exit|fill|find|fm\/mod|here|hold|i|if|immediate|invert|j|key|leave|literal|loop|lshift|m\*|max|min|mod|move|negate|or|over|postpone|quit|r&gt;|r@|recurse|repeat|rot|rshift|s\&#34;|s&gt;d|sign|sm\/rem|source|space|spaces|state|swap|then|type|u\.|u\&lt;|um\*|um\/mod|unloop|until|variable|while|word|xor|\[char\]|\[\&#39;\]|@|!|\#|&lt;\#|\#&gt;|:|;|\+|-|\*|\/|,|&lt;|&gt;|\|1\+|1-|\.|\.r|0&lt;&gt;|0&gt;|2&gt;r|2r&gt;|2r@|:noname|\?do|again|c\&#34;|case|compile,|endcase|endof|erase|false|hex|marker|nip|of|pad|parse|pick|refill|restore-input|roll|save-input|source-id|to|true|tuck|u\.r|u&gt;|unused|value|within|\[compile\]|\#tib|convert|expect|query|span|tib|2constant|2literal|2variable|d\+|d-|d\.|d\.r|d0&lt;|d0=|d2\*|d2\/|d&lt;|d=|d&gt;s|dabs|dmax|dmin|dnegate|m\*\/|m\+|2rot|du&lt;|catch|throw|abort|abort\&#34;|at-xy|key\?|page|ekey|ekey&gt;char|ekey\?|emit\?|ms|time&amp;date|BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|S\&#34;|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|&gt;float|d&gt;f|f!|f\*|f\+|f-|f\/|f0&lt;|f0=|f&lt;|f&gt;d|f@|falign|faligned|fconstant|fdepth|fdrop|fdup|fliteral|float\+|floats|floor|fmax|fmin|fnegate|fover|frot|fround|fswap|fvariable|represent|df!|df@|dfalign|dfaligned|dfloat\+|dfloats|f\*\*|f\.|fabs|facos|facosh|falog|fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|fe\.|fexp|fexpm1|fln|flnp1|flog|fs\.|fsin|fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|sfloats|\(local\)|to|locals\||allocate|free|resize|definitions|find|forth-wordlist|get-current|get-order|search-wordlist|set-current|set-order|wordlist|also|forth|only|order|previous|-trailing|\/string|blank|cmove|cmove&gt;|compare|search|sliteral|.s|dump|see|words|;code|ahead|assembler|bye|code|cs-pick|cs-roll|editor|state|\[else\]|\[if\]|\[then\]|forget|defer|defer@|defer!|action-of|begin-structure|field:|buffer:|parse-name|buffer:|traverse-wordlist|n&gt;r|nr&gt;|2value|fvalue|name&gt;interpret|name&gt;compile|name&gt;string|cfield:|end-structure)\s">
37 <token type="Keyword"/>
38 </rule>
39 <rule pattern="(\$[0-9A-F]+)">
40 <token type="LiteralNumberHex"/>
41 </rule>
42 <rule pattern="(\#|%|&amp;|\-|\+)?[0-9]+">
43 <token type="LiteralNumberInteger"/>
44 </rule>
45 <rule pattern="(\#|%|&amp;|\-|\+)?[0-9.]+">
46 <token type="KeywordType"/>
47 </rule>
48 <rule pattern="(@i|!i|@e|!e|pause|noop|turnkey|sleep|itype|icompare|sp@|sp!|rp@|rp!|up@|up!|&gt;a|a&gt;|a@|a!|a@+|a@-|&gt;b|b&gt;|b@|b!|b@+|b@-|find-name|1ms|sp0|rp0|\(evaluate\)|int-trap|int!)\s">
49 <token type="NameConstant"/>
50 </rule>
51 <rule pattern="(do-recognizer|r:fail|recognizer:|get-recognizers|set-recognizers|r:float|r&gt;comp|r&gt;int|r&gt;post|r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|rec:num|rec:float|rec:word)\s">
52 <token type="NameDecorator"/>
53 </rule>
54 <rule pattern="(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)">
55 <bygroups>
56 <token type="KeywordNamespace"/>
57 <token type="Text"/>
58 </bygroups>
59 <push state="worddef"/>
60 </rule>
61 <rule pattern="[^\s]+(?=[\s])">
62 <token type="NameFunction"/>
63 </rule>
64 </state>
65 <state name="worddef">
66 <rule pattern="\S+">
67 <token type="NameClass"/>
68 <pop depth="1"/>
69 </rule>
70 </state>
71 <state name="stringdef">
72 <rule pattern="[^&#34;]+">
73 <token type="LiteralString"/>
74 <pop depth="1"/>
75 </rule>
76 </state>
77 </rules>
78</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml
new file mode 100644
index 0000000..012808b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fortran.xml
@@ -0,0 +1,82 @@
1<lexer>
2 <config>
3 <name>Fortran</name>
4 <alias>fortran</alias>
5 <filename>*.f03</filename>
6 <filename>*.f90</filename>
7 <filename>*.F03</filename>
8 <filename>*.F90</filename>
9 <mime_type>text/x-fortran</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="core">
14 <rule pattern="\b(NON_OVERRIDABLE|NON_INTRINSIC|ASYNCHRONOUS|ALLOCATABLE|CODIMENSION|EQUIVALENCE|CONCURRRENT|SYNCMEMORY|SUBROUTINE|CONTIGUOUS|SYNCIMAGES|ENUMERATOR|DEALLOCATE|BLOCKDATA|BACKSPACE|PROTECTED|RECURSIVE|PROCEDURE|SUBMODULE|EXTRINSIC|ASSOCIATE|PARAMETER|INTERFACE|ELEMENTAL|DIMENSION|INTRINSIC|ABSTRACT|EXTERNAL|CRITICAL|SEQUENCE|DEFERRED|CONTINUE|NAMELIST|CONTAINS|OPTIONAL|ALLOCATE|VOLATILE|IMPLICIT|FUNCTION|SYNCALL|INCLUDE|INQUIRE|EXTENDS|ALLSTOP|OPTIONS|PROGRAM|PRIVATE|POINTER|NULLIFY|GENERIC|FORMAT|FORALL|ENCODE|IMAGES|UNLOCK|ASSIGN|IMPURE|TARGET|PUBLIC|INTENT|RESULT|ACCEPT|COMMON|RETURN|MEMORY|MODULE|REWIND|DECODE|NOPASS|SELECT|IMPORT|ENTRY|BLOCK|CLASS|WRITE|WHERE|CLOSE|PAUSE|CYCLE|PRINT|FINAL|WHILE|ARRAY|VALUE|SAVE|PURE|READ|SYNC|ENUM|ELSE|EXIT|FILE|DATA|GOTO|STOP|PASS|LOCK|CASE|CALL|BYTE|OPEN|BIND|THEN|TYPE|NONE|USE|END|ALL|IF|IS|DO)\s*\b">
15 <token type="Keyword"/>
16 </rule>
17 <rule pattern="\b(C_LONG_DOUBLE_COMPLEX|DOUBLE PRECISION|C_DOUBLE_COMPLEX|C_INT_LEAST32_T|C_INT_LEAST64_T|C_FLOAT_COMPLEX|C_INT_LEAST16_T|C_INT_LEAST8_T|C_INT_FAST32_T|C_INT_FAST64_T|DOUBLE COMPLEX|C_INT_FAST16_T|C_SIGNED_CHAR|C_LONG_DOUBLE|C_INT_FAST8_T|C_LONG_LONG|C_INTMAX_T|C_INTPTR_T|C_INT32_T|C_INT64_T|C_INT16_T|CHARACTER|C_DOUBLE|C_SIZE_T|C_INT8_T|C_FUNPTR|COMPLEX|C_FLOAT|C_SHORT|LOGICAL|INTEGER|C_LONG|C_BOOL|C_CHAR|C_INT|C_PTR|REAL)\s*\b">
18 <token type="KeywordType"/>
19 </rule>
20 <rule pattern="(\*\*|\*|\+|-|\/|&lt;|&gt;|&lt;=|&gt;=|==|\/=|=)">
21 <token type="Operator"/>
22 </rule>
23 <rule pattern="(::)">
24 <token type="KeywordDeclaration"/>
25 </rule>
26 <rule pattern="[()\[\],:&amp;%;.]">
27 <token type="Punctuation"/>
28 </rule>
29 <rule pattern="\b(Get_Environment_Variable|Command_Argument_Count|Execute_Command_Line|Get_Command_Argument|Selected_Real_Kind|Selected_Char_Kind|C_Carriage_Return|Selected_Int_Kind|C_Horizontal_Tab|Extends_Type_Of|C_F_ProcPointer|C_Vertical_Tab|Date_and_Time|Is_Contiguous|C_Null_Funptr|Atomic_Define|Is_Iostat_Eor|Iso_C_Binding|Random_Number|Is_Iostat_End|C_Associated|Same_Type_As|Storage_Size|System_Clock|Set_Exponent|ErFC_Scaled|Get_Command|Dot_Product|C_Backspace|C_Null_Char|Image_Index|C_F_Pointer|MinExponent|Random_Seed|MaxExponent|C_Form_Feed|Move_Alloc|C_New_Line|Num_Images|Atomic_Ref|Associated|This_Image|Merge_Bits|C_Null_Ptr|Bessel_Y1|Bessel_JN|Bessel_J1|Bessel_J0|Transpose|RRSpacing|Allocated|Log_Gamma|Precision|Bessel_YN|Bessel_Y0|Bit_Size|Transfer|LCoBound|CPU_Time|UCoBound|Fraction|C_Sizeof|Exponent|ImagPart|C_FunLoc|New_Line|RealPart|Len_Trim|C_Alert|Spacing|Ceiling|Epsilon|AdjustR|Product|Complex|DShiftR|AdjustL|DShiftL|Present|IParity|Reshape|FindLoc|EOShift|Logical|Nearest|Digits|Modulo|DbesYN|MaxVal|TrailZ|MvBits|DbesJN|Second|IDNInt|IAChar|MinVal|IErrNo|RShift|TtyNam|MinLoc|Repeat|Rename|LShift|UBound|System|Parity|HostNm|LBound|SymLnk|MClock|GMTime|GetUId|GetPId|GetLog|PError|Spread|MaxLoc|Unlink|MatMul|GetGId|Signal|GetEnv|IShftC|IsaTty|ShiftA|GetCWD|CShift|LnBlnk|ShiftL|Unpack|Access|GetArg|Verify|GError|ShiftR|DNInt|FSeek|FStat|FTell|Gamma|FPutC|Flush|Floor|Float|FGetC|FDate|Radix|ETime|DTime|Range|DTanH|DSqRt|DSinH|DSign|Hypot|DProd|Scale|Norm2|DErFC|DCosH|IArgC|IBClr|IBits|IBSet|IChar|IDate|DbesY|IDInt|DbesJ|DATan|DASin|DACos|Shape|C_Loc|CTime|Index|CSqRt|Count|Conjg|Cmplx|Short|IShft|ChMod|ISign|ChDir|Sleep|BTest|SRand|ITime|Merge|BesYN|BesJN|ATanH|ASinH|ANInt|UMask|Alarm|AImag|MaskR|MaskL|ACosH|LTime|LStat|AChar|IRand|Abort|ZSqRt|SqRt|ZLog|ZExp|ZCos|Link|ZAbs|ACos|AInt|ALog|Kind|Kill|Long|ZSin|AMin|Imag|IFix|IEOr|Trim|IDiM|IAny|IAnd|Sign|NInt|AMod|Tiny|Null|IAbs|ASin|Pack|Huge|FPut|FNum|FGet|Time|Exit|Rand|ErFC|TanH|DTan|Real|DSin|DMod|DMin|DMax|DLog|DInt|ATan|DExp|Scan|DErF|DDiM|DCos|Dble|DAbs|BesJ|CSin|CosH|BesY|CLog|Char|CExp|SinH|Stat|CCos|Sngl|CAbs|IAll|AMax|IOr|Sin|BGE|Sum|Cos|BGT|DiM|Tan|ErF|Exp|Log|Not|Any|And|BLE|Mod|Min|Int|Len|All|LGe|LGt|Abs|XOr|Max|LLe|LLt|Loc|BLT|Or)\s*\b">
30 <token type="NameBuiltin"/>
31 </rule>
32 <rule pattern="\.(true|false)\.">
33 <token type="NameBuiltin"/>
34 </rule>
35 <rule pattern="\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.">
36 <token type="OperatorWord"/>
37 </rule>
38 </state>
39 <state name="strings">
40 <rule pattern="(?s)&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\])*&#34;">
41 <token type="LiteralStringDouble"/>
42 </rule>
43 <rule pattern="(?s)&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
44 <token type="LiteralStringSingle"/>
45 </rule>
46 </state>
47 <state name="nums">
48 <rule pattern="\d+(?![.e])(_[a-z]\w+)?">
49 <token type="LiteralNumberInteger"/>
50 </rule>
51 <rule pattern="[+-]?\d*\.\d+([ed][-+]?\d+)?(_[a-z]\w+)?">
52 <token type="LiteralNumberFloat"/>
53 </rule>
54 <rule pattern="[+-]?\d+\.\d*([ed][-+]?\d+)?(_[a-z]\w+)?">
55 <token type="LiteralNumberFloat"/>
56 </rule>
57 </state>
58 <state name="root">
59 <rule pattern="^#.*\n">
60 <token type="CommentPreproc"/>
61 </rule>
62 <rule pattern="!.*\n">
63 <token type="Comment"/>
64 </rule>
65 <rule>
66 <include state="strings"/>
67 </rule>
68 <rule>
69 <include state="core"/>
70 </rule>
71 <rule pattern="[a-z][\w$]*">
72 <token type="Name"/>
73 </rule>
74 <rule>
75 <include state="nums"/>
76 </rule>
77 <rule pattern="[\s]+">
78 <token type="Text"/>
79 </rule>
80 </state>
81 </rules>
82</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml
new file mode 100644
index 0000000..f608979
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/fsharp.xml
@@ -0,0 +1,245 @@
1<lexer>
2 <config>
3 <name>FSharp</name>
4 <alias>fsharp</alias>
5 <filename>*.fs</filename>
6 <filename>*.fsi</filename>
7 <mime_type>text/x-fsharp</mime_type>
8 </config>
9 <rules>
10 <state name="comment">
11 <rule pattern="[^(*)@&#34;]+">
12 <token type="Comment"/>
13 </rule>
14 <rule pattern="\(\*">
15 <token type="Comment"/>
16 <push/>
17 </rule>
18 <rule pattern="\*\)">
19 <token type="Comment"/>
20 <pop depth="1"/>
21 </rule>
22 <rule pattern="@&#34;">
23 <token type="LiteralString"/>
24 <push state="lstring"/>
25 </rule>
26 <rule pattern="&#34;&#34;&#34;">
27 <token type="LiteralString"/>
28 <push state="tqs"/>
29 </rule>
30 <rule pattern="&#34;">
31 <token type="LiteralString"/>
32 <push state="string"/>
33 </rule>
34 <rule pattern="[(*)@]">
35 <token type="Comment"/>
36 </rule>
37 </state>
38 <state name="string">
39 <rule pattern="[^\\&#34;]+">
40 <token type="LiteralString"/>
41 </rule>
42 <rule>
43 <include state="escape-sequence"/>
44 </rule>
45 <rule pattern="\\\n">
46 <token type="LiteralString"/>
47 </rule>
48 <rule pattern="\n">
49 <token type="LiteralString"/>
50 </rule>
51 <rule pattern="&#34;B?">
52 <token type="LiteralString"/>
53 <pop depth="1"/>
54 </rule>
55 </state>
56 <state name="lstring">
57 <rule pattern="[^&#34;]+">
58 <token type="LiteralString"/>
59 </rule>
60 <rule pattern="\n">
61 <token type="LiteralString"/>
62 </rule>
63 <rule pattern="&#34;&#34;">
64 <token type="LiteralString"/>
65 </rule>
66 <rule pattern="&#34;B?">
67 <token type="LiteralString"/>
68 <pop depth="1"/>
69 </rule>
70 </state>
71 <state name="tqs">
72 <rule pattern="[^&#34;]+">
73 <token type="LiteralString"/>
74 </rule>
75 <rule pattern="\n">
76 <token type="LiteralString"/>
77 </rule>
78 <rule pattern="&#34;&#34;&#34;B?">
79 <token type="LiteralString"/>
80 <pop depth="1"/>
81 </rule>
82 <rule pattern="&#34;">
83 <token type="LiteralString"/>
84 </rule>
85 </state>
86 <state name="escape-sequence">
87 <rule pattern="\\[\\&#34;\&#39;ntbrafv]">
88 <token type="LiteralStringEscape"/>
89 </rule>
90 <rule pattern="\\[0-9]{3}">
91 <token type="LiteralStringEscape"/>
92 </rule>
93 <rule pattern="\\u[0-9a-fA-F]{4}">
94 <token type="LiteralStringEscape"/>
95 </rule>
96 <rule pattern="\\U[0-9a-fA-F]{8}">
97 <token type="LiteralStringEscape"/>
98 </rule>
99 </state>
100 <state name="root">
101 <rule pattern="\s+">
102 <token type="Text"/>
103 </rule>
104 <rule pattern="\(\)|\[\]">
105 <token type="NameBuiltinPseudo"/>
106 </rule>
107 <rule pattern="\b(?&lt;!\.)([A-Z][\w\&#39;]*)(?=\s*\.)">
108 <token type="NameNamespace"/>
109 <push state="dotted"/>
110 </rule>
111 <rule pattern="\b([A-Z][\w\&#39;]*)">
112 <token type="Name"/>
113 </rule>
114 <rule pattern="///.*?\n">
115 <token type="LiteralStringDoc"/>
116 </rule>
117 <rule pattern="//.*?\n">
118 <token type="CommentSingle"/>
119 </rule>
120 <rule pattern="\(\*(?!\))">
121 <token type="Comment"/>
122 <push state="comment"/>
123 </rule>
124 <rule pattern="@&#34;">
125 <token type="LiteralString"/>
126 <push state="lstring"/>
127 </rule>
128 <rule pattern="&#34;&#34;&#34;">
129 <token type="LiteralString"/>
130 <push state="tqs"/>
131 </rule>
132 <rule pattern="&#34;">
133 <token type="LiteralString"/>
134 <push state="string"/>
135 </rule>
136 <rule pattern="\b(open|module)(\s+)([\w.]+)">
137 <bygroups>
138 <token type="Keyword"/>
139 <token type="Text"/>
140 <token type="NameNamespace"/>
141 </bygroups>
142 </rule>
143 <rule pattern="\b(let!?)(\s+)(\w+)">
144 <bygroups>
145 <token type="Keyword"/>
146 <token type="Text"/>
147 <token type="NameVariable"/>
148 </bygroups>
149 </rule>
150 <rule pattern="\b(type)(\s+)(\w+)">
151 <bygroups>
152 <token type="Keyword"/>
153 <token type="Text"/>
154 <token type="NameClass"/>
155 </bygroups>
156 </rule>
157 <rule pattern="\b(member|override)(\s+)(\w+)(\.)(\w+)">
158 <bygroups>
159 <token type="Keyword"/>
160 <token type="Text"/>
161 <token type="Name"/>
162 <token type="Punctuation"/>
163 <token type="NameFunction"/>
164 </bygroups>
165 </rule>
166 <rule pattern="\b(abstract|as|assert|base|begin|class|default|delegate|do!|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|function|fun|global|if|inherit|inline|interface|internal|in|lazy|let!|let|match|member|module|mutable|namespace|new|null|of|open|override|private|public|rec|return!|return|select|static|struct|then|to|true|try|type|upcast|use!|use|val|void|when|while|with|yield!|yield|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b">
167 <token type="Keyword"/>
168 </rule>
169 <rule pattern="``([^`\n\r\t]|`[^`\n\r\t])+``">
170 <token type="Name"/>
171 </rule>
172 <rule pattern="#[ \t]*(if|endif|else|line|nowarn|light|r|\d+)\b">
173 <token type="CommentPreproc"/>
174 </rule>
175 <rule pattern="(!=|#|&amp;&amp;|&amp;|\(|\)|\*|\+|,|-\.|-&gt;|-|\.\.|\.|::|:=|:&gt;|:|;;|;|&lt;-|&lt;\]|&lt;|&gt;\]|&gt;|\?\?|\?|\[&lt;|\[\||\[|\]|_|`|\{|\|\]|\||\}|~|&lt;@@|&lt;@|=|@&gt;|@@&gt;)">
176 <token type="Operator"/>
177 </rule>
178 <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
179 <token type="Operator"/>
180 </rule>
181 <rule pattern="\b(and|or|not)\b">
182 <token type="OperatorWord"/>
183 </rule>
184 <rule pattern="\b(sbyte|byte|char|nativeint|unativeint|float32|single|float|double|int8|uint8|int16|uint16|int32|uint32|int64|uint64|decimal|unit|bool|string|list|exn|obj|enum)\b">
185 <token type="KeywordType"/>
186 </rule>
187 <rule pattern="[^\W\d][\w&#39;]*">
188 <token type="Name"/>
189 </rule>
190 <rule pattern="\d[\d_]*[uU]?[yslLnQRZINGmM]?">
191 <token type="LiteralNumberInteger"/>
192 </rule>
193 <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*[uU]?[yslLn]?[fF]?">
194 <token type="LiteralNumberHex"/>
195 </rule>
196 <rule pattern="0[oO][0-7][0-7_]*[uU]?[yslLn]?">
197 <token type="LiteralNumberOct"/>
198 </rule>
199 <rule pattern="0[bB][01][01_]*[uU]?[yslLn]?">
200 <token type="LiteralNumberBin"/>
201 </rule>
202 <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)[fFmM]?">
203 <token type="LiteralNumberFloat"/>
204 </rule>
205 <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;B?">
206 <token type="LiteralStringChar"/>
207 </rule>
208 <rule pattern="&#39;.&#39;">
209 <token type="LiteralStringChar"/>
210 </rule>
211 <rule pattern="&#39;">
212 <token type="Keyword"/>
213 </rule>
214 <rule pattern="@?&#34;">
215 <token type="LiteralStringDouble"/>
216 <push state="string"/>
217 </rule>
218 <rule pattern="[~?][a-z][\w\&#39;]*:">
219 <token type="NameVariable"/>
220 </rule>
221 </state>
222 <state name="dotted">
223 <rule pattern="\s+">
224 <token type="Text"/>
225 </rule>
226 <rule pattern="\.">
227 <token type="Punctuation"/>
228 </rule>
229 <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
230 <token type="NameNamespace"/>
231 </rule>
232 <rule pattern="[A-Z][\w\&#39;]*">
233 <token type="Name"/>
234 <pop depth="1"/>
235 </rule>
236 <rule pattern="[a-z_][\w\&#39;]*">
237 <token type="Name"/>
238 <pop depth="1"/>
239 </rule>
240 <rule>
241 <pop depth="1"/>
242 </rule>
243 </state>
244 </rules>
245</lexer>
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml
new file mode 100644
index 0000000..1ef31de
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gas.xml
@@ -0,0 +1,121 @@
1<lexer>
2 <config>
3 <name>GAS</name>
4 <alias>gas</alias>
5 <alias>asm</alias>
6 <filename>*.s</filename>
7 <filename>*.S</filename>
8 <mime_type>text/x-gas</mime_type>
9 </config>
10 <rules>
11 <state name="punctuation">
12 <rule pattern="[-*,.()\[\]!:]+">
13 <token type="Punctuation"/>
14 </rule>
15 </state>
16 <state name="root">
17 <rule>
18 <include state="whitespace"/>
19 </rule>
20 <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+):">
21 <token type="NameLabel"/>
22 </rule>
23 <rule pattern="\.(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
24 <token type="NameAttribute"/>
25 <push state="directive-args"/>
26 </rule>
27 <rule pattern="lock|rep(n?z)?|data\d+">
28 <token type="NameAttribute"/>
29 </rule>
30 <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
31 <token type="NameFunction"/>
32 <push state="instruction-args"/>
33 </rule>
34 <rule pattern="[\r\n]+">
35 <token type="Text"/>
36 </rule>
37 </state>
38 <state name="directive-args">
39 <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
40 <token type="NameConstant"/>
41 </rule>
42 <rule pattern="&#34;(\\&#34;|[^&#34;])*&#34;">
43 <token type="LiteralString"/>
44 </rule>
45 <rule pattern="@(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
46 <token type="NameAttribute"/>
47 </rule>
48 <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
49 <token type="LiteralNumberInteger"/>
50 </rule>
51 <rule pattern="[\r\n]+">
52 <token type="Text"/>
53 <pop depth="1"/>
54 </rule>
55 <rule>
56 <include state="punctuation"/>
57 </rule>
58 <rule>
59 <include state="whitespace"/>
60 </rule>
61 </state>
62 <state name="instruction-args">
63 <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))(&gt;)">
64 <bygroups>
65 <token type="LiteralNumberHex"/>
66 <token type="Text"/>
67 <token type="Punctuation"/>
68 <token type="NameConstant"/>
69 <token type="Punctuation"/>
70 </bygroups>
71 </rule>
72 <rule pattern="([a-z0-9]+)( )(&lt;)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))([-+])((?:0[xX][a-zA-Z0-9]+|\d+))(&gt;)">
73 <bygroups>
74 <token type="LiteralNumberHex"/>
75 <token type="Text"/>
76 <token type="Punctuation"/>
77 <token type="NameConstant"/>
78 <token type="Punctuation"/>
79 <token type="LiteralNumberInteger"/>
80 <token type="Punctuation"/>
81 </bygroups>
82 </rule>
83 <rule pattern="(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
84 <token type="NameConstant"/>
85 </rule>
86 <rule pattern="(?:0[xX][a-zA-Z0-9]+|\d+)">
87 <token type="LiteralNumberInteger"/>
88 </rule>
89 <rule pattern="%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)">
90 <token type="NameVariable"/>
91 </rule>
92 <rule pattern="$(?:0[xX][a-zA-Z0-9]+|\d+)">
93 <token type="LiteralNumberInteger"/>
94 </rule>
95 <rule pattern="$&#39;(.|\\&#39;)&#39;">
96 <token type="LiteralStringChar"/>
97 </rule>
98 <rule pattern="[\r\n]+">
99 <token type="Text"/>
100 <pop depth="1"/>
101 </rule>
102 <rule>
103 <include state="punctuation"/>
104 </rule>
105 <rule>
106 <include state="whitespace"/>
107 </rule>
108 </state>
109 <state name="whitespace">
110 <rule pattern="\n">
111 <token type="Text"/>
112 </rule>
113 <rule pattern="\s+">
114 <token type="Text"/>
115 </rule>
116 <rule pattern="[;#].*?\n">
117 <token type="Comment"/>
118 </rule>
119 </state>
120 </rules>
121</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml
new file mode 100644
index 0000000..fb75fc8
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gdscript.xml
@@ -0,0 +1,265 @@
1<lexer>
2 <config>
3 <name>GDScript</name>
4 <alias>gdscript</alias>
5 <alias>gd</alias>
6 <filename>*.gd</filename>
7 <mime_type>text/x-gdscript</mime_type>
8 <mime_type>application/x-gdscript</mime_type>
9 </config>
10 <rules>
11 <state name="builtins">
12 <rule pattern="(?&lt;!\.)(instance_from_id|nearest_po2|print_stack|type_exist|rand_range|linear2db|var2bytes|dict2inst|randomize|bytes2var|rand_seed|db2linear|inst2dict|printerr|printraw|decimals|preload|deg2rad|str2var|stepify|var2str|convert|weakref|fposmod|funcref|rad2deg|dectime|printt|is_inf|is_nan|assert|Color8|typeof|ColorN|prints|floor|atan2|yield|randf|print|range|clamp|round|randi|sqrt|tanh|cosh|ceil|ease|acos|load|fmod|lerp|seed|sign|atan|sinh|hash|asin|sin|str|cos|tan|pow|exp|min|abs|log|max)\b">
13 <token type="NameBuiltin"/>
14 </rule>
15 <rule pattern="(?&lt;!\.)(self|false|true|PI|NAN|INF)\b">
16 <token type="NameBuiltinPseudo"/>
17 </rule>
18 <rule pattern="(?&lt;!\.)(Physics2DShapeQueryParameters|PhysicsShapeQueryParameters|Physics2DDirectBodyStateSW|NavigationPolygonInstance|ResourceInteractiveLoader|Physics2DDirectSpaceState|Physics2DShapeQueryResult|Physics2DTestMotionResult|InputEventJoystickButton|InputEventJoystickMotion|Physics2DDirectBodyState|PhysicsDirectBodyStateSW|PhysicsShapeQueryResult|PhysicsDirectSpaceState|SpatialSound2DServerSW|PackedDataContainerRef|NavigationMeshInstance|ResourceImportMetadata|PhysicsDirectBodyState|ConcavePolygonShape2D|CanvasItemShaderGraph|EditorScenePostImport|InputEventScreenTouch|InputEventMouseButton|InputEventMouseMotion|SpatialSound2DServer|AudioStreamOGGVorbis|VisibilityNotifier2D|InputEventScreenDrag|ConvexPolygonShape2D|SpatialSoundServerSW|ParticleAttractor2D|PackedDataContainer|SpatialStreamPlayer|RenderTargetTexture|AnimationTreePlayer|ConcavePolygonShape|InstancePlaceholder|MaterialShaderGraph|AudioStreamPlayback|VisibilityEnabler2D|SpatialSamplePlayer|DampedSpringJoint2D|InterpolatedCamera|ConvexPolygonShape|ConfirmationDialog|SpatialSoundServer|BakedLightInstance|ParallaxBackground|CollisionPolygon2D|CanvasItemMaterial|VisibilityNotifier|EditorImportPlugin|VideoStreamTheora|TouchScreenButton|ResourcePreloader|OccluderPolygon2D|BakedLightSampler|CollisionObject2D|RemoteTransform2D|PolygonPathFinder|StyleBoxImageMask|NavigationPolygon|TranslationServer|MultiMeshInstance|ImmediateGeometry|Physics2DServerSW|ColorPickerButton|VisibilityEnabler|PHashTranslation|RectangleShape2D|DirectionalLight|AnimatedSprite3D|WorldEnvironment|CollisionShape2D|EventStreamChibi|InputEventAction|CollisionPolygon|AudioStreamSpeex|EditorFileDialog|GeometryInstance|Generic6DOFJoint|PacketPeerStream|CanvasItemShader|KinematicBody2D|StyleBoxTexture|PhysicsServerSW|VSplitContainer|CenterContainer|GDFunctionState|AudioStreamOpus|TextureProgress|MarginContainer|CollisionObject|LightOccluder2D|AnimationPlayer|HSplitContainer|ScrollContainer|SoundRoomParams|Physics2DServer|MaterialShader|ShaderMaterial|ViewportSprite|SplitContainer|AudioStreamMPC|VisualInstance|PanelContainer|BackBufferCopy|SamplePlayer2D|CanvasModulate|ResourceLoader|CapsuleShape2D|ReferenceFrame|NavigationMesh|CollisionShape|ConeTwistJoint|ProximityGroup|AnimatedSprite|SegmentShape2D|BoneAttachment|RichTextLabel|CircleShape2D|VBoxContainer|PacketPeerUDP|SpatialPlayer|TextureButton|KinematicBody|SoundPlayer2D|PhysicsServer|ParallaxLayer|InputEventKey|GrooveJoint2D|PhysicsBody2D|FixedMaterial|GridContainer|HBoxContainer|StreamPeerSSL|StyleBoxEmpty|StreamPeerTCP|SampleLibrary|GDNativeClass|AudioServerSW|ResourceSaver|SpriteBase3D|StreamPlayer|AtlasTexture|VisualServer|SamplePlayer|StyleBoxFlat|StaticBody2D|SpriteFrames|MeshDataTool|MeshInstance|Vector3Array|BoxContainer|TabContainer|HButtonArray|LargeTexture|Navigation2D|WindowDialog|EditorScript|EditorPlugin|TextureFrame|AcceptDialog|ImageTexture|CapsuleShape|VehicleWheel|VButtonArray|Vector2Array|InputDefault|OptionButton|PathFollow2D|VehicleBody|ColorPicker|PopupDialog|ProgressBar|CanvasLayer|Translation|Environment|EventPlayer|VideoPlayer|EventStream|VideoStream|ButtonGroup|Particles2D|Patch9Frame|ButtonArray|SurfaceTool|MeshLibrary|PackedScene|PhysicsBody|AudioStream|Performance|StringArray|AudioServer|RigidBody2D|LineShape2D|SliderJoint|SphereShape|ShaderGraph|CheckButton|StreamPeer|FileDialog|PathFollow|SceneState|RoomBounds|Dictionary|VSeparator|PacketPeer|VScrollBar|MenuButton|HTTPClient|PinJoint2D|BakedLight|PlaneShape|InputEvent|BaseButton|HSeparator|HScrollBar|Navigation|PopupPanel|StaticBody|Position2D|Position3D|ToolButton|HingeJoint|CanvasItem|RayShape2D|ColorArray|ConfigFile|TCP_Server|RayCast2D|ColorRamp|SpotLight|RealArray|GraphNode|Container|Reference|PopupMenu|Separator|Polygon2D|MultiMesh|Semaphore|Transform|OmniLight|GraphEdit|Particles|Animation|Marshalls|SceneTree|RigidBody|XMLParser|PathRemap|ScrollBar|Directory|PCKPacker|RawArray|TextEdit|MainLoop|TreeItem|StyleBox|Material|Geometry|Matrix32|Resource|UndoRedo|RayShape|TestCube|ItemList|CheckBox|Camera2D|Skeleton|Sprite3D|Viewport|NodePath|IntArray|BoxShape|PinJoint|InputMap|LineEdit|GDScript|Vector3|TileMap|HSlider|Spatial|SpinBox|World2D|IP_Unix|Curve2D|Curve3D|WeakRef|GridMap|Matrix3|VSlider|CubeMap|Joint2D|Globals|Shape2D|Texture|Control|TileSet|Light2D|FuncRef|Vector2|RayCast|Script|Node2D|Button|BitMap|Sample|Object|String|Shader|Area2D|Slider|Sprite|Thread|Path2D|Camera|Portal|float|Theme|World|YSort|Shape|Joint|Mutex|Tween|RegEx|Label|Rect2|Array|Plane|Light|Range|Color|Input|Popup|Panel|Timer|Image|Area|Quad|bool|AABB|Quat|File|Tabs|Path|Font|Tree|Room|Mesh|Node|RID|int|Nil|IP|OS)\b">
19 <token type="NameException"/>
20 </rule>
21 </state>
22 <state name="sqs">
23 <rule pattern="&#39;">
24 <token type="LiteralStringSingle"/>
25 <pop depth="1"/>
26 </rule>
27 <rule pattern="\\\\|\\&#39;|\\\n">
28 <token type="LiteralStringEscape"/>
29 </rule>
30 <rule>
31 <include state="strings-single"/>
32 </rule>
33 </state>
34 <state name="stringescape">
35 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
36 <token type="LiteralStringEscape"/>
37 </rule>
38 </state>
39 <state name="classname">
40 <rule pattern="[a-zA-Z_]\w*">
41 <token type="NameClass"/>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="strings-single">
46 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
47 <token type="LiteralStringInterpol"/>
48 </rule>
49 <rule pattern="[^\\\&#39;&#34;%\n]+">
50 <token type="LiteralStringSingle"/>
51 </rule>
52 <rule pattern="[\&#39;&#34;\\]">
53 <token type="LiteralStringSingle"/>
54 </rule>
55 <rule pattern="%">
56 <token type="LiteralStringSingle"/>
57 </rule>
58 </state>
59 <state name="funcname">
60 <rule pattern="[a-zA-Z_]\w*">
61 <token type="NameFunction"/>
62 <pop depth="1"/>
63 </rule>
64 <rule>
65 <pop depth="1"/>
66 </rule>
67 </state>
68 <state name="numbers">
69 <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
70 <token type="LiteralNumberFloat"/>
71 </rule>
72 <rule pattern="\d+[eE][+-]?[0-9]+j?">
73 <token type="LiteralNumberFloat"/>
74 </rule>
75 <rule pattern="0[xX][a-fA-F0-9]+">
76 <token type="LiteralNumberHex"/>
77 </rule>
78 <rule pattern="\d+j?">
79 <token type="LiteralNumberInteger"/>
80 </rule>
81 </state>
82 <state name="tdqs">
83 <rule pattern="&#34;&#34;&#34;">
84 <token type="LiteralStringDouble"/>
85 <pop depth="1"/>
86 </rule>
87 <rule>
88 <include state="strings-double"/>
89 </rule>
90 <rule pattern="\n">
91 <token type="LiteralStringDouble"/>
92 </rule>
93 </state>
94 <state name="name">
95 <rule pattern="[a-zA-Z_]\w*">
96 <token type="Name"/>
97 </rule>
98 </state>
99 <state name="root">
100 <rule pattern="\n">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
104 <bygroups>
105 <token type="Text"/>
106 <token type="LiteralStringAffix"/>
107 <token type="LiteralStringDoc"/>
108 </bygroups>
109 </rule>
110 <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
111 <bygroups>
112 <token type="Text"/>
113 <token type="LiteralStringAffix"/>
114 <token type="LiteralStringDoc"/>
115 </bygroups>
116 </rule>
117 <rule pattern="[^\S\n]+">
118 <token type="Text"/>
119 </rule>
120 <rule pattern="#.*$">
121 <token type="CommentSingle"/>
122 </rule>
123 <rule pattern="[]{}:(),;[]">
124 <token type="Punctuation"/>
125 </rule>
126 <rule pattern="\\\n">
127 <token type="Text"/>
128 </rule>
129 <rule pattern="\\">
130 <token type="Text"/>
131 </rule>
132 <rule pattern="(in|and|or|not)\b">
133 <token type="OperatorWord"/>
134 </rule>
135 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|&amp;&amp;|\+=|-=|\*=|/=|%=|&amp;=|\|=|\|\||[-~+/*%=&lt;&gt;&amp;^.!|$]">
136 <token type="Operator"/>
137 </rule>
138 <rule>
139 <include state="keywords"/>
140 </rule>
141 <rule pattern="(def)((?:\s|\\\s)+)">
142 <bygroups>
143 <token type="Keyword"/>
144 <token type="Text"/>
145 </bygroups>
146 <push state="funcname"/>
147 </rule>
148 <rule pattern="(class)((?:\s|\\\s)+)">
149 <bygroups>
150 <token type="Keyword"/>
151 <token type="Text"/>
152 </bygroups>
153 <push state="classname"/>
154 </rule>
155 <rule>
156 <include state="builtins"/>
157 </rule>
158 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;&#34;&#34;)">
159 <bygroups>
160 <token type="LiteralStringAffix"/>
161 <token type="LiteralStringDouble"/>
162 </bygroups>
163 <push state="tdqs"/>
164 </rule>
165 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;&#39;&#39;)">
166 <bygroups>
167 <token type="LiteralStringAffix"/>
168 <token type="LiteralStringSingle"/>
169 </bygroups>
170 <push state="tsqs"/>
171 </rule>
172 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;)">
173 <bygroups>
174 <token type="LiteralStringAffix"/>
175 <token type="LiteralStringDouble"/>
176 </bygroups>
177 <push state="dqs"/>
178 </rule>
179 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;)">
180 <bygroups>
181 <token type="LiteralStringAffix"/>
182 <token type="LiteralStringSingle"/>
183 </bygroups>
184 <push state="sqs"/>
185 </rule>
186 <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
187 <bygroups>
188 <token type="LiteralStringAffix"/>
189 <token type="LiteralStringDouble"/>
190 </bygroups>
191 <combined state="stringescape" state="tdqs"/>
192 </rule>
193 <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
194 <bygroups>
195 <token type="LiteralStringAffix"/>
196 <token type="LiteralStringSingle"/>
197 </bygroups>
198 <combined state="stringescape" state="tsqs"/>
199 </rule>
200 <rule pattern="([uUbB]?)(&#34;)">
201 <bygroups>
202 <token type="LiteralStringAffix"/>
203 <token type="LiteralStringDouble"/>
204 </bygroups>
205 <combined state="stringescape" state="dqs"/>
206 </rule>
207 <rule pattern="([uUbB]?)(&#39;)">
208 <bygroups>
209 <token type="LiteralStringAffix"/>
210 <token type="LiteralStringSingle"/>
211 </bygroups>
212 <combined state="stringescape" state="sqs"/>
213 </rule>
214 <rule>
215 <include state="name"/>
216 </rule>
217 <rule>
218 <include state="numbers"/>
219 </rule>
220 </state>
221 <state name="keywords">
222 <rule pattern="(breakpoint|continue|onready|extends|signal|return|export|static|setget|switch|break|const|while|class|tool|pass|func|case|enum|else|elif|var|for|do|if)\b">
223 <token type="Keyword"/>
224 </rule>
225 </state>
226 <state name="dqs">
227 <rule pattern="&#34;">
228 <token type="LiteralStringDouble"/>
229 <pop depth="1"/>
230 </rule>
231 <rule pattern="\\\\|\\&#34;|\\\n">
232 <token type="LiteralStringEscape"/>
233 </rule>
234 <rule>
235 <include state="strings-double"/>
236 </rule>
237 </state>
238 <state name="tsqs">
239 <rule pattern="&#39;&#39;&#39;">
240 <token type="LiteralStringSingle"/>
241 <pop depth="1"/>
242 </rule>
243 <rule>
244 <include state="strings-single"/>
245 </rule>
246 <rule pattern="\n">
247 <token type="LiteralStringSingle"/>
248 </rule>
249 </state>
250 <state name="strings-double">
251 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
252 <token type="LiteralStringInterpol"/>
253 </rule>
254 <rule pattern="[^\\\&#39;&#34;%\n]+">
255 <token type="LiteralStringDouble"/>
256 </rule>
257 <rule pattern="[\&#39;&#34;\\]">
258 <token type="LiteralStringDouble"/>
259 </rule>
260 <rule pattern="%">
261 <token type="LiteralStringDouble"/>
262 </rule>
263 </state>
264 </rules>
265</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml
new file mode 100644
index 0000000..c53a2cb
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gherkin.xml
@@ -0,0 +1,263 @@
1<lexer>
2 <config>
3 <name>Gherkin</name>
4 <alias>cucumber</alias>
5 <alias>Cucumber</alias>
6 <alias>gherkin</alias>
7 <alias>Gherkin</alias>
8 <filename>*.feature</filename>
9 <filename>*.FEATURE</filename>
10 <mime_type>text/x-gherkin</mime_type>
11 </config>
12 <rules>
13 <state name="comments">
14 <rule pattern="\s*#.*$">
15 <token type="Comment"/>
16 </rule>
17 </state>
18 <state name="featureElementsOnStack">
19 <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |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&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
20 <token type="Keyword"/>
21 <pop depth="2"/>
22 </rule>
23 <rule>
24 <include state="comments"/>
25 </rule>
26 <rule pattern="(\s|.)">
27 <token type="NameFunction"/>
28 </rule>
29 </state>
30 <state name="tableContent">
31 <rule pattern="\s+\|\s*$">
32 <token type="Keyword"/>
33 <pop depth="1"/>
34 </rule>
35 <rule>
36 <include state="comments"/>
37 </rule>
38 <rule pattern="\\\|">
39 <token type="LiteralString"/>
40 </rule>
41 <rule pattern="\s*\|">
42 <token type="Keyword"/>
43 </rule>
44 <rule pattern="&#34;">
45 <token type="LiteralString"/>
46 <push state="doubleStringTable"/>
47 </rule>
48 <rule>
49 <include state="string"/>
50 </rule>
51 </state>
52 <state name="numbers">
53 <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
54 <token type="LiteralString"/>
55 </rule>
56 </state>
57 <state name="tableVars">
58 <rule pattern="(&lt;[^&gt;]+&gt;)">
59 <token type="NameVariable"/>
60 </rule>
61 </state>
62 <state name="doubleString">
63 <rule pattern="&#34;">
64 <token type="NameFunction"/>
65 <pop depth="1"/>
66 </rule>
67 <rule>
68 <include state="string"/>
69 </rule>
70 </state>
71 <state name="featureElements">
72 <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |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&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
73 <token type="Keyword"/>
74 <push state="stepContentStack"/>
75 </rule>
76 <rule>
77 <include state="comments"/>
78 </rule>
79 <rule pattern="(\s|.)">
80 <token type="NameFunction"/>
81 </rule>
82 </state>
83 <state name="examplesTableHeader">
84 <rule pattern="\s+\|\s*$">
85 <token type="Keyword"/>
86 <pop depth="2"/>
87 </rule>
88 <rule>
89 <include state="comments"/>
90 </rule>
91 <rule pattern="\\\|">
92 <token type="NameVariable"/>
93 </rule>
94 <rule pattern="\s*\|">
95 <token type="Keyword"/>
96 </rule>
97 <rule pattern="[^|]">
98 <token type="NameVariable"/>
99 </rule>
100 </state>
101 <state name="stepContentStack">
102 <rule pattern="$">
103 <token type="Keyword"/>
104 <pop depth="2"/>
105 </rule>
106 <rule>
107 <include state="stepContent"/>
108 </rule>
109 </state>
110 <state name="pyString">
111 <rule pattern="&#34;&#34;&#34;">
112 <token type="Keyword"/>
113 <pop depth="1"/>
114 </rule>
115 <rule>
116 <include state="string"/>
117 </rule>
118 </state>
119 <state name="examplesTable">
120 <rule pattern="\s+\|">
121 <token type="Keyword"/>
122 <push state="examplesTableHeader"/>
123 </rule>
124 <rule>
125 <include state="comments"/>
126 </rule>
127 <rule pattern="(\s|.)">
128 <token type="NameFunction"/>
129 </rule>
130 </state>
131 <state name="stepContentRoot">
132 <rule pattern="$">
133 <token type="Keyword"/>
134 <pop depth="1"/>
135 </rule>
136 <rule>
137 <include state="stepContent"/>
138 </rule>
139 </state>
140 <state name="doubleStringTable">
141 <rule pattern="&#34;">
142 <token type="LiteralString"/>
143 <pop depth="1"/>
144 </rule>
145 <rule>
146 <include state="string"/>
147 </rule>
148 </state>
149 <state name="string">
150 <rule>
151 <include state="tableVars"/>
152 </rule>
153 <rule pattern="(\s|.)">
154 <token type="LiteralString"/>
155 </rule>
156 </state>
157 <state name="stepContent">
158 <rule pattern="&#34;">
159 <token type="NameFunction"/>
160 <push state="doubleString"/>
161 </rule>
162 <rule>
163 <include state="tableVars"/>
164 </rule>
165 <rule>
166 <include state="numbers"/>
167 </rule>
168 <rule>
169 <include state="comments"/>
170 </rule>
171 <rule pattern="(\s|.)">
172 <token type="NameFunction"/>
173 </rule>
174 </state>
175 <state name="scenarioSectionsOnStack">
176 <rule pattern="^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|剧本大纲|剧本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l&#39;escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y&#39;all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$">
177 <bygroups>
178 <token type="NameFunction"/>
179 <token type="Keyword"/>
180 <token type="Keyword"/>
181 <token type="NameFunction"/>
182 </bygroups>
183 <push state="featureElementsOnStack"/>
184 </rule>
185 </state>
186 <state name="narrative">
187 <rule>
188 <include state="scenarioSectionsOnStack"/>
189 </rule>
190 <rule pattern="(\s|.)">
191 <token type="NameFunction"/>
192 </rule>
193 </state>
194 <state name="root">
195 <rule pattern="\n">
196 <token type="NameFunction"/>
197 </rule>
198 <rule>
199 <include state="comments"/>
200 </rule>
201 <rule pattern="&#34;&#34;&#34;">
202 <token type="Keyword"/>
203 <push state="pyString"/>
204 </rule>
205 <rule pattern="\s+\|">
206 <token type="Keyword"/>
207 <push state="tableContent"/>
208 </rule>
209 <rule pattern="&#34;">
210 <token type="NameFunction"/>
211 <push state="doubleString"/>
212 </rule>
213 <rule>
214 <include state="tableVars"/>
215 </rule>
216 <rule>
217 <include state="numbers"/>
218 </rule>
219 <rule pattern="(\s*)(@[^@\r\n\t ]+)">
220 <bygroups>
221 <token type="NameFunction"/>
222 <token type="NameTag"/>
223 </bygroups>
224 </rule>
225 <rule pattern="^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假设|假如|假定|但是|但し|並且|并且|同時|同时|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |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&#39;all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y&#39;all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu&#39;|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y&#39;all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y&#39;all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y&#39;all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )">
226 <bygroups>
227 <token type="NameFunction"/>
228 <token type="Keyword"/>
229 </bygroups>
230 <push state="stepContentRoot"/>
231 </rule>
232 <rule pattern="^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$">
233 <bygroups>
234 <token type="Keyword"/>
235 <token type="Keyword"/>
236 <token type="NameFunction"/>
237 </bygroups>
238 <push state="narrative"/>
239 </rule>
240 <rule pattern="^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|剧本大纲|剧本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l&#39;escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y&#39;all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$">
241 <bygroups>
242 <token type="NameFunction"/>
243 <token type="Keyword"/>
244 <token type="Keyword"/>
245 <token type="NameFunction"/>
246 </bygroups>
247 <push state="featureElements"/>
248 </rule>
249 <rule pattern="^(\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$">
250 <bygroups>
251 <token type="NameFunction"/>
252 <token type="Keyword"/>
253 <token type="Keyword"/>
254 <token type="NameFunction"/>
255 </bygroups>
256 <push state="examplesTable"/>
257 </rule>
258 <rule pattern="(\s|.)">
259 <token type="NameFunction"/>
260 </rule>
261 </state>
262 </rules>
263</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml
new file mode 100644
index 0000000..ca0b696
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/glsl.xml
@@ -0,0 +1,65 @@
1<lexer>
2 <config>
3 <name>GLSL</name>
4 <alias>glsl</alias>
5 <filename>*.vert</filename>
6 <filename>*.frag</filename>
7 <filename>*.geo</filename>
8 <mime_type>text/x-glslsrc</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="^#.*">
13 <token type="CommentPreproc"/>
14 </rule>
15 <rule pattern="//.*">
16 <token type="CommentSingle"/>
17 </rule>
18 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
19 <token type="CommentMultiline"/>
20 </rule>
21 <rule pattern="\+|-|~|!=?|\*|/|%|&lt;&lt;|&gt;&gt;|&lt;=?|&gt;=?|==?|&amp;&amp;?|\^|\|\|?">
22 <token type="Operator"/>
23 </rule>
24 <rule pattern="[?:]">
25 <token type="Operator"/>
26 </rule>
27 <rule pattern="\bdefined\b">
28 <token type="Operator"/>
29 </rule>
30 <rule pattern="[;{}(),\[\]]">
31 <token type="Punctuation"/>
32 </rule>
33 <rule pattern="[+-]?\d*\.\d+([eE][-+]?\d+)?">
34 <token type="LiteralNumberFloat"/>
35 </rule>
36 <rule pattern="[+-]?\d+\.\d*([eE][-+]?\d+)?">
37 <token type="LiteralNumberFloat"/>
38 </rule>
39 <rule pattern="0[xX][0-9a-fA-F]*">
40 <token type="LiteralNumberHex"/>
41 </rule>
42 <rule pattern="0[0-7]*">
43 <token type="LiteralNumberOct"/>
44 </rule>
45 <rule pattern="[1-9][0-9]*">
46 <token type="LiteralNumberInteger"/>
47 </rule>
48 <rule pattern="\b(sampler3DsamplerCube|sampler2DShadow|sampler1DShadow|invariant|sampler1D|sampler2D|attribute|mat3mat4|centroid|continue|varying|uniform|discard|mat4x4|mat3x3|mat2x3|mat4x2|mat3x2|mat2x2|mat2x4|mat3x4|struct|return|mat4x3|bvec4|false|ivec4|ivec3|const|float|inout|ivec2|break|while|bvec3|bvec2|vec3|else|true|void|bool|vec2|vec4|mat2|for|out|int|in|do|if)\b">
49 <token type="Keyword"/>
50 </rule>
51 <rule pattern="\b(sampler2DRectShadow|sampler2DRect|sampler3DRect|namespace|precision|interface|volatile|template|unsigned|external|noinline|mediump|typedef|default|switch|static|extern|inline|sizeof|output|packed|double|public|fvec3|class|union|short|highp|fixed|input|fvec4|hvec2|hvec3|hvec4|dvec2|dvec3|dvec4|fvec2|using|long|this|enum|lowp|cast|goto|half|asm)\b">
52 <token type="Keyword"/>
53 </rule>
54 <rule pattern="[a-zA-Z_]\w*">
55 <token type="Name"/>
56 </rule>
57 <rule pattern="\.">
58 <token type="Punctuation"/>
59 </rule>
60 <rule pattern="\s+">
61 <token type="Text"/>
62 </rule>
63 </state>
64 </rules>
65</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml
new file mode 100644
index 0000000..ee6a245
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/gnuplot.xml
@@ -0,0 +1,289 @@
1<lexer>
2 <config>
3 <name>Gnuplot</name>
4 <alias>gnuplot</alias>
5 <filename>*.plot</filename>
6 <filename>*.plt</filename>
7 <mime_type>text/x-gnuplot</mime_type>
8 </config>
9 <rules>
10 <state name="whitespace">
11 <rule pattern="#">
12 <token type="Comment"/>
13 <push state="comment"/>
14 </rule>
15 <rule pattern="[ \t\v\f]+">
16 <token type="Text"/>
17 </rule>
18 </state>
19 <state name="save">
20 <rule pattern="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">
21 <token type="NameBuiltin"/>
22 </rule>
23 <rule>
24 <include state="genericargs"/>
25 </rule>
26 </state>
27 <state name="pause">
28 <rule pattern="(mouse|any|button1|button2|button3)\b">
29 <token type="NameBuiltin"/>
30 </rule>
31 <rule pattern="keypress\b|keypres\b|keypre\b|keypr\b|keyp\b|key\b">
32 <token type="NameBuiltin"/>
33 </rule>
34 <rule>
35 <include state="genericargs"/>
36 </rule>
37 </state>
38 <state name="plot">
39 <rule pattern="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">
40 <token type="NameBuiltin"/>
41 </rule>
42 <rule>
43 <include state="genericargs"/>
44 </rule>
45 </state>
46 <state name="if">
47 <rule pattern="\)">
48 <token type="Punctuation"/>
49 <pop depth="1"/>
50 </rule>
51 <rule>
52 <include state="genericargs"/>
53 </rule>
54 </state>
55 <state name="genericargs">
56 <rule>
57 <include state="noargs"/>
58 </rule>
59 <rule pattern="&#34;">
60 <token type="LiteralString"/>
61 <push state="dqstring"/>
62 </rule>
63 <rule pattern="&#39;">
64 <token type="LiteralString"/>
65 <push state="sqstring"/>
66 </rule>
67 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+">
68 <token type="LiteralNumberFloat"/>
69 </rule>
70 <rule pattern="(\d+\.\d*|\.\d+)">
71 <token type="LiteralNumberFloat"/>
72 </rule>
73 <rule pattern="-?\d+">
74 <token type="LiteralNumberInteger"/>
75 </rule>
76 <rule pattern="[,.~!%^&amp;*+=|?:&lt;&gt;/-]">
77 <token type="Operator"/>
78 </rule>
79 <rule pattern="[{}()\[\]]">
80 <token type="Punctuation"/>
81 </rule>
82 <rule pattern="(eq|ne)\b">
83 <token type="OperatorWord"/>
84 </rule>
85 <rule pattern="([a-zA-Z_]\w*)(\s*)(\()">
86 <bygroups>
87 <token type="NameFunction"/>
88 <token type="Text"/>
89 <token type="Punctuation"/>
90 </bygroups>
91 </rule>
92 <rule pattern="[a-zA-Z_]\w*">
93 <token type="Name"/>
94 </rule>
95 <rule pattern="@[a-zA-Z_]\w*">
96 <token type="NameConstant"/>
97 </rule>
98 <rule pattern="\\\n">
99 <token type="Text"/>
100 </rule>
101 </state>
102 <state name="comment">
103 <rule pattern="[^\\\n]">
104 <token type="Comment"/>
105 </rule>
106 <rule pattern="\\\n">
107 <token type="Comment"/>
108 </rule>
109 <rule pattern="\\">
110 <token type="Comment"/>
111 </rule>
112 <rule>
113 <pop depth="1"/>
114 </rule>
115 </state>
116 <state name="root">
117 <rule>
118 <include state="whitespace"/>
119 </rule>
120 <rule pattern="bind\b|bin\b|bi\b">
121 <token type="Keyword"/>
122 <push state="bind"/>
123 </rule>
124 <rule pattern="exit\b|exi\b|ex\b|quit\b|qui\b|qu\b|q\b">
125 <token type="Keyword"/>
126 <push state="quit"/>
127 </rule>
128 <rule pattern="fit\b|fi\b|f\b">
129 <token type="Keyword"/>
130 <push state="fit"/>
131 </rule>
132 <rule pattern="(if)(\s*)(\()">
133 <bygroups>
134 <token type="Keyword"/>
135 <token type="Text"/>
136 <token type="Punctuation"/>
137 </bygroups>
138 <push state="if"/>
139 </rule>
140 <rule pattern="else\b">
141 <token type="Keyword"/>
142 </rule>
143 <rule pattern="pause\b|paus\b|pau\b|pa\b">
144 <token type="Keyword"/>
145 <push state="pause"/>
146 </rule>
147 <rule pattern="plot\b|plo\b|pl\b|p\b|replot\b|replo\b|repl\b|rep\b|splot\b|splo\b|spl\b|sp\b">
148 <token type="Keyword"/>
149 <push state="plot"/>
150 </rule>
151 <rule pattern="save\b|sav\b|sa\b">
152 <token type="Keyword"/>
153 <push state="save"/>
154 </rule>
155 <rule pattern="set\b|se\b">
156 <token type="Keyword"/>
157 <push state="genericargs" state="optionarg"/>
158 </rule>
159 <rule pattern="show\b|sho\b|sh\b|unset\b|unse\b|uns\b">
160 <token type="Keyword"/>
161 <push state="noargs" state="optionarg"/>
162 </rule>
163 <rule pattern="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">
164 <token type="Keyword"/>
165 <push state="genericargs"/>
166 </rule>
167 <rule pattern="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">
168 <token type="Keyword"/>
169 <push state="noargs"/>
170 </rule>
171 <rule pattern="([a-zA-Z_]\w*)(\s*)(=)">
172 <bygroups>
173 <token type="NameVariable"/>
174 <token type="Text"/>
175 <token type="Operator"/>
176 </bygroups>
177 <push state="genericargs"/>
178 </rule>
179 <rule pattern="([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)">
180 <bygroups>
181 <token type="NameFunction"/>
182 <token type="Text"/>
183 <token type="Operator"/>
184 </bygroups>
185 <push state="genericargs"/>
186 </rule>
187 <rule pattern="@[a-zA-Z_]\w*">
188 <token type="NameConstant"/>
189 </rule>
190 <rule pattern=";">
191 <token type="Keyword"/>
192 </rule>
193 </state>
194 <state name="dqstring">
195 <rule pattern="&#34;">
196 <token type="LiteralString"/>
197 <pop depth="1"/>
198 </rule>
199 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
200 <token type="LiteralStringEscape"/>
201 </rule>
202 <rule pattern="[^\\&#34;\n]+">
203 <token type="LiteralString"/>
204 </rule>
205 <rule pattern="\\\n">
206 <token type="LiteralString"/>
207 </rule>
208 <rule pattern="\\">
209 <token type="LiteralString"/>
210 </rule>
211 <rule pattern="\n">
212 <token type="LiteralString"/>
213 <pop depth="1"/>
214 </rule>
215 </state>
216 <state name="optionarg">
217 <rule>
218 <include state="whitespace"/>
219 </rule>
220 <rule pattern="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">
221 <token type="NameBuiltin"/>
222 <pop depth="1"/>
223 </rule>
224 </state>
225 <state name="bind">
226 <rule pattern="!">
227 <token type="Keyword"/>
228 <pop depth="1"/>
229 </rule>
230 <rule pattern="allwindows\b|allwindow\b|allwindo\b|allwind\b|allwin\b|allwi\b|allw\b|all\b">
231 <token type="NameBuiltin"/>
232 </rule>
233 <rule>
234 <include state="genericargs"/>
235 </rule>
236 </state>
237 <state name="fit">
238 <rule pattern="via\b">
239 <token type="NameBuiltin"/>
240 </rule>
241 <rule>
242 <include state="plot"/>
243 </rule>
244 </state>
245 <state name="noargs">
246 <rule>
247 <include state="whitespace"/>
248 </rule>
249 <rule pattern=";">
250 <token type="Punctuation"/>
251 <pop depth="1"/>
252 </rule>
253 <rule pattern="\n">
254 <token type="Text"/>
255 <pop depth="1"/>
256 </rule>
257 </state>
258 <state name="sqstring">
259 <rule pattern="&#39;&#39;">
260 <token type="LiteralString"/>
261 </rule>
262 <rule pattern="&#39;">
263 <token type="LiteralString"/>
264 <pop depth="1"/>
265 </rule>
266 <rule pattern="[^\\&#39;\n]+">
267 <token type="LiteralString"/>
268 </rule>
269 <rule pattern="\\\n">
270 <token type="LiteralString"/>
271 </rule>
272 <rule pattern="\\">
273 <token type="LiteralString"/>
274 </rule>
275 <rule pattern="\n">
276 <token type="LiteralString"/>
277 <pop depth="1"/>
278 </rule>
279 </state>
280 <state name="quit">
281 <rule pattern="gnuplot\b">
282 <token type="Keyword"/>
283 </rule>
284 <rule>
285 <include state="noargs"/>
286 </rule>
287 </state>
288 </rules>
289</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml
new file mode 100644
index 0000000..a293330
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/go_template.xml
@@ -0,0 +1,112 @@
1<lexer>
2 <config>
3 <name>Go HTML Template</name>
4 <alias>go-html-template</alias>
5 </config>
6 <rules>
7 <state name="template">
8 <rule pattern="[-]?}}">
9 <token type="CommentPreproc"/>
10 <pop depth="1"/>
11 </rule>
12 <rule pattern="(?=}})">
13 <token type="CommentPreproc"/>
14 <pop depth="1"/>
15 </rule>
16 <rule pattern="\(">
17 <token type="Operator"/>
18 <push state="subexpression"/>
19 </rule>
20 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
21 <token type="LiteralString"/>
22 </rule>
23 <rule>
24 <include state="expression"/>
25 </rule>
26 </state>
27 <state name="subexpression">
28 <rule pattern="\)">
29 <token type="Operator"/>
30 <pop depth="1"/>
31 </rule>
32 <rule>
33 <include state="expression"/>
34 </rule>
35 </state>
36 <state name="expression">
37 <rule pattern="\s+">
38 <token type="TextWhitespace"/>
39 </rule>
40 <rule pattern="\(">
41 <token type="Operator"/>
42 <push state="subexpression"/>
43 </rule>
44 <rule pattern="(range|if|else|while|with|template|end|true|false|nil|and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge)\b">
45 <token type="Keyword"/>
46 </rule>
47 <rule pattern="\||:?=|,">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="[$]?[^\W\d]\w*">
51 <token type="NameOther"/>
52 </rule>
53 <rule pattern="\$|[$]?\.(?:[^\W\d]\w*)?">
54 <token type="NameAttribute"/>
55 </rule>
56 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
57 <token type="LiteralString"/>
58 </rule>
59 <rule pattern="-?\d+i">
60 <token type="LiteralNumber"/>
61 </rule>
62 <rule pattern="-?\d+\.\d*([Ee][-+]\d+)?i">
63 <token type="LiteralNumber"/>
64 </rule>
65 <rule pattern="\.\d+([Ee][-+]\d+)?i">
66 <token type="LiteralNumber"/>
67 </rule>
68 <rule pattern="-?\d+[Ee][-+]\d+i">
69 <token type="LiteralNumber"/>
70 </rule>
71 <rule pattern="-?\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
72 <token type="LiteralNumberFloat"/>
73 </rule>
74 <rule pattern="-?\.\d+([eE][+\-]?\d+)?">
75 <token type="LiteralNumberFloat"/>
76 </rule>
77 <rule pattern="-?0[0-7]+">
78 <token type="LiteralNumberOct"/>
79 </rule>
80 <rule pattern="-?0[xX][0-9a-fA-F]+">
81 <token type="LiteralNumberHex"/>
82 </rule>
83 <rule pattern="-?0b[01_]+">
84 <token type="LiteralNumberBin"/>
85 </rule>
86 <rule pattern="-?(0|[1-9][0-9]*)">
87 <token type="LiteralNumberInteger"/>
88 </rule>
89 <rule pattern="&#39;(\\[&#39;&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#39;">
90 <token type="LiteralStringChar"/>
91 </rule>
92 <rule pattern="`[^`]*`">
93 <token type="LiteralString"/>
94 </rule>
95 </state>
96 <state name="root">
97 <rule pattern="{{(- )?/\*(.|\n)*?\*/( -)?}}">
98 <token type="CommentMultiline"/>
99 </rule>
100 <rule pattern="{{[-]?">
101 <token type="CommentPreproc"/>
102 <push state="template"/>
103 </rule>
104 <rule pattern="[^{]+">
105 <token type="Other"/>
106 </rule>
107 <rule pattern="{">
108 <token type="Other"/>
109 </rule>
110 </state>
111 </rules>
112</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml
new file mode 100644
index 0000000..b062273
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/graphql.xml
@@ -0,0 +1,88 @@
1<lexer>
2 <config>
3 <name>GraphQL</name>
4 <alias>graphql</alias>
5 <alias>graphqls</alias>
6 <alias>gql</alias>
7 <filename>*.graphql</filename>
8 <filename>*.graphqls</filename>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="(query|mutation|subscription|fragment|scalar|implements|interface|union|enum|input|type)">
13 <token type="KeywordDeclaration"/>
14 <push state="type"/>
15 </rule>
16 <rule pattern="(on|extend|schema|directive|\.\.\.)">
17 <token type="KeywordDeclaration"/>
18 </rule>
19 <rule pattern="(QUERY|MUTATION|SUBSCRIPTION|FIELD|FRAGMENT_DEFINITION|FRAGMENT_SPREAD|INLINE_FRAGMENT|SCHEMA|SCALAR|OBJECT|FIELD_DEFINITION|ARGUMENT_DEFINITION|INTERFACE|UNION|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION)\b">
20 <token type="KeywordConstant"/>
21 </rule>
22 <rule pattern="[^\W\d]\w*">
23 <token type="NameProperty"/>
24 </rule>
25 <rule pattern="\@\w+">
26 <token type="NameDecorator"/>
27 </rule>
28 <rule pattern=":">
29 <token type="Punctuation"/>
30 <push state="type"/>
31 </rule>
32 <rule pattern="[\(\)\{\}\[\],!\|=]">
33 <token type="Punctuation"/>
34 </rule>
35 <rule pattern="\$\w+">
36 <token type="NameVariable"/>
37 </rule>
38 <rule pattern="\d+i">
39 <token type="LiteralNumber"/>
40 </rule>
41 <rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
42 <token type="LiteralNumber"/>
43 </rule>
44 <rule pattern="\.\d+([Ee][-+]\d+)?i">
45 <token type="LiteralNumber"/>
46 </rule>
47 <rule pattern="\d+[Ee][-+]\d+i">
48 <token type="LiteralNumber"/>
49 </rule>
50 <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
51 <token type="LiteralNumberFloat"/>
52 </rule>
53 <rule pattern="\.\d+([eE][+\-]?\d+)?">
54 <token type="LiteralNumberFloat"/>
55 </rule>
56 <rule pattern="(0|[1-9][0-9]*)">
57 <token type="LiteralNumberInteger"/>
58 </rule>
59 <rule pattern="&#34;&#34;&#34;[\x00-\x7F]*?&#34;&#34;&#34;">
60 <token type="LiteralString"/>
61 </rule>
62 <rule pattern="&#34;(\\[&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#34;">
63 <token type="LiteralStringChar"/>
64 </rule>
65 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
66 <token type="LiteralString"/>
67 </rule>
68 <rule pattern="&#34;(true|false|null)*&#34;">
69 <token type="Literal"/>
70 </rule>
71 <rule pattern="[\r\n\s]+">
72 <token type="TextWhitespace"/>
73 </rule>
74 <rule pattern="#[^\r\n]*">
75 <token type="Comment"/>
76 </rule>
77 </state>
78 <state name="type">
79 <rule pattern="[^\W\d]\w*">
80 <token type="NameClass"/>
81 <pop depth="1"/>
82 </rule>
83 <rule>
84 <include state="root"/>
85 </rule>
86 </state>
87 </rules>
88</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml
new file mode 100644
index 0000000..3af0a43
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groff.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>Groff</name>
4 <alias>groff</alias>
5 <alias>nroff</alias>
6 <alias>man</alias>
7 <filename>*.[1-9]</filename>
8 <filename>*.1p</filename>
9 <filename>*.3pm</filename>
10 <filename>*.man</filename>
11 <mime_type>application/x-troff</mime_type>
12 <mime_type>text/troff</mime_type>
13 </config>
14 <rules>
15 <state name="request">
16 <rule pattern="\n">
17 <token type="Text"/>
18 <pop depth="1"/>
19 </rule>
20 <rule>
21 <include state="escapes"/>
22 </rule>
23 <rule pattern="&#34;[^\n&#34;]+&#34;">
24 <token type="LiteralStringDouble"/>
25 </rule>
26 <rule pattern="\d+">
27 <token type="LiteralNumber"/>
28 </rule>
29 <rule pattern="\S+">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="\s+">
33 <token type="Text"/>
34 </rule>
35 </state>
36 <state name="root">
37 <rule pattern="(\.)(\w+)">
38 <bygroups>
39 <token type="Text"/>
40 <token type="Keyword"/>
41 </bygroups>
42 <push state="request"/>
43 </rule>
44 <rule pattern="\.">
45 <token type="Punctuation"/>
46 <push state="request"/>
47 </rule>
48 <rule pattern="[^\\\n]+">
49 <token type="Text"/>
50 <push state="textline"/>
51 </rule>
52 <rule>
53 <push state="textline"/>
54 </rule>
55 </state>
56 <state name="textline">
57 <rule>
58 <include state="escapes"/>
59 </rule>
60 <rule pattern="[^\\\n]+">
61 <token type="Text"/>
62 </rule>
63 <rule pattern="\n">
64 <token type="Text"/>
65 <pop depth="1"/>
66 </rule>
67 </state>
68 <state name="escapes">
69 <rule pattern="\\&#34;[^\n]*">
70 <token type="Comment"/>
71 </rule>
72 <rule pattern="\\[fn]\w">
73 <token type="LiteralStringEscape"/>
74 </rule>
75 <rule pattern="\\\(.{2}">
76 <token type="LiteralStringEscape"/>
77 </rule>
78 <rule pattern="\\.\[.*\]">
79 <token type="LiteralStringEscape"/>
80 </rule>
81 <rule pattern="\\.">
82 <token type="LiteralStringEscape"/>
83 </rule>
84 <rule pattern="\\\n">
85 <token type="Text"/>
86 <push state="request"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml
new file mode 100644
index 0000000..0dd7b82
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/groovy.xml
@@ -0,0 +1,135 @@
1<lexer>
2 <config>
3 <name>Groovy</name>
4 <alias>groovy</alias>
5 <filename>*.groovy</filename>
6 <filename>*.gradle</filename>
7 <mime_type>text/x-groovy</mime_type>
8 <dot_all>true</dot_all>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="#!(.*?)$">
13 <token type="CommentPreproc"/>
14 <push state="base"/>
15 </rule>
16 <rule>
17 <push state="base"/>
18 </rule>
19 </state>
20 <state name="base">
21 <rule pattern="^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()">
22 <bygroups>
23 <usingself state="root"/>
24 <token type="NameFunction"/>
25 <token type="Text"/>
26 <token type="Operator"/>
27 </bygroups>
28 </rule>
29 <rule pattern="[^\S\n]+">
30 <token type="Text"/>
31 </rule>
32 <rule pattern="//.*?\n">
33 <token type="CommentSingle"/>
34 </rule>
35 <rule pattern="/\*.*?\*/">
36 <token type="CommentMultiline"/>
37 </rule>
38 <rule pattern="@[a-zA-Z_][\w.]*">
39 <token type="NameDecorator"/>
40 </rule>
41 <rule pattern="(as|assert|break|case|catch|continue|default|do|else|finally|for|if|in|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\b">
42 <token type="Keyword"/>
43 </rule>
44 <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b">
45 <token type="KeywordDeclaration"/>
46 </rule>
47 <rule pattern="(def|boolean|byte|char|double|float|int|long|short|void)\b">
48 <token type="KeywordType"/>
49 </rule>
50 <rule pattern="(package)(\s+)">
51 <bygroups>
52 <token type="KeywordNamespace"/>
53 <token type="Text"/>
54 </bygroups>
55 </rule>
56 <rule pattern="(true|false|null)\b">
57 <token type="KeywordConstant"/>
58 </rule>
59 <rule pattern="(class|interface)(\s+)">
60 <bygroups>
61 <token type="KeywordDeclaration"/>
62 <token type="Text"/>
63 </bygroups>
64 <push state="class"/>
65 </rule>
66 <rule pattern="(import)(\s+)">
67 <bygroups>
68 <token type="KeywordNamespace"/>
69 <token type="Text"/>
70 </bygroups>
71 <push state="import"/>
72 </rule>
73 <rule pattern="&#34;&#34;&#34;.*?&#34;&#34;&#34;">
74 <token type="LiteralStringDouble"/>
75 </rule>
76 <rule pattern="&#39;&#39;&#39;.*?&#39;&#39;&#39;">
77 <token type="LiteralStringSingle"/>
78 </rule>
79 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
80 <token type="LiteralStringDouble"/>
81 </rule>
82 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
83 <token type="LiteralStringSingle"/>
84 </rule>
85 <rule pattern="\$/((?!/\$).)*/\$">
86 <token type="LiteralString"/>
87 </rule>
88 <rule pattern="/(\\\\|\\&#34;|[^/])*/">
89 <token type="LiteralString"/>
90 </rule>
91 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
92 <token type="LiteralStringChar"/>
93 </rule>
94 <rule pattern="(\.)([a-zA-Z_]\w*)">
95 <bygroups>
96 <token type="Operator"/>
97 <token type="NameAttribute"/>
98 </bygroups>
99 </rule>
100 <rule pattern="[a-zA-Z_]\w*:">
101 <token type="NameLabel"/>
102 </rule>
103 <rule pattern="[a-zA-Z_$]\w*">
104 <token type="Name"/>
105 </rule>
106 <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
107 <token type="Operator"/>
108 </rule>
109 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
110 <token type="LiteralNumberFloat"/>
111 </rule>
112 <rule pattern="0x[0-9a-fA-F]+">
113 <token type="LiteralNumberHex"/>
114 </rule>
115 <rule pattern="[0-9]+L?">
116 <token type="LiteralNumberInteger"/>
117 </rule>
118 <rule pattern="\n">
119 <token type="Text"/>
120 </rule>
121 </state>
122 <state name="class">
123 <rule pattern="[a-zA-Z_]\w*">
124 <token type="NameClass"/>
125 <pop depth="1"/>
126 </rule>
127 </state>
128 <state name="import">
129 <rule pattern="[\w.]+\*?">
130 <token type="NameNamespace"/>
131 <pop depth="1"/>
132 </rule>
133 </state>
134 </rules>
135</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml
new file mode 100644
index 0000000..7cf2a64
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/handlebars.xml
@@ -0,0 +1,147 @@
1<lexer>
2 <config>
3 <name>Handlebars</name>
4 <alias>handlebars</alias>
5 <alias>hbs</alias>
6 <filename>*.handlebars</filename>
7 <filename>*.hbs</filename>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="[^{]+">
12 <token type="Other"/>
13 </rule>
14 <rule pattern="\{\{!.*\}\}">
15 <token type="Comment"/>
16 </rule>
17 <rule pattern="(\{\{\{)(\s*)">
18 <bygroups>
19 <token type="CommentSpecial"/>
20 <token type="Text"/>
21 </bygroups>
22 <push state="tag"/>
23 </rule>
24 <rule pattern="(\{\{)(\s*)">
25 <bygroups>
26 <token type="CommentPreproc"/>
27 <token type="Text"/>
28 </bygroups>
29 <push state="tag"/>
30 </rule>
31 </state>
32 <state name="tag">
33 <rule pattern="\s+">
34 <token type="Text"/>
35 </rule>
36 <rule pattern="\}\}\}">
37 <token type="CommentSpecial"/>
38 <pop depth="1"/>
39 </rule>
40 <rule pattern="\}\}">
41 <token type="CommentPreproc"/>
42 <pop depth="1"/>
43 </rule>
44 <rule pattern="([#/]*)(each|if|unless|else|with|log|in(?:line)?)">
45 <bygroups>
46 <token type="Keyword"/>
47 <token type="Keyword"/>
48 </bygroups>
49 </rule>
50 <rule pattern="#\*inline">
51 <token type="Keyword"/>
52 </rule>
53 <rule pattern="([#/])([\w-]+)">
54 <bygroups>
55 <token type="NameFunction"/>
56 <token type="NameFunction"/>
57 </bygroups>
58 </rule>
59 <rule pattern="([\w-]+)(=)">
60 <bygroups>
61 <token type="NameAttribute"/>
62 <token type="Operator"/>
63 </bygroups>
64 </rule>
65 <rule pattern="(&gt;)(\s*)(@partial-block)">
66 <bygroups>
67 <token type="Keyword"/>
68 <token type="Text"/>
69 <token type="Keyword"/>
70 </bygroups>
71 </rule>
72 <rule pattern="(#?&gt;)(\s*)([\w-]+)">
73 <bygroups>
74 <token type="Keyword"/>
75 <token type="Text"/>
76 <token type="NameVariable"/>
77 </bygroups>
78 </rule>
79 <rule pattern="(&gt;)(\s*)(\()">
80 <bygroups>
81 <token type="Keyword"/>
82 <token type="Text"/>
83 <token type="Punctuation"/>
84 </bygroups>
85 <push state="dynamic-partial"/>
86 </rule>
87 <rule>
88 <include state="generic"/>
89 </rule>
90 </state>
91 <state name="dynamic-partial">
92 <rule pattern="\s+">
93 <token type="Text"/>
94 </rule>
95 <rule pattern="\)">
96 <token type="Punctuation"/>
97 <pop depth="1"/>
98 </rule>
99 <rule pattern="(lookup)(\s+)(\.|this)(\s+)">
100 <bygroups>
101 <token type="Keyword"/>
102 <token type="Text"/>
103 <token type="NameVariable"/>
104 <token type="Text"/>
105 </bygroups>
106 </rule>
107 <rule pattern="(lookup)(\s+)(\S+)">
108 <bygroups>
109 <token type="Keyword"/>
110 <token type="Text"/>
111 <usingself state="variable"/>
112 </bygroups>
113 </rule>
114 <rule pattern="[\w-]+">
115 <token type="NameFunction"/>
116 </rule>
117 <rule>
118 <include state="generic"/>
119 </rule>
120 </state>
121 <state name="variable">
122 <rule pattern="[a-zA-Z][\w-]*">
123 <token type="NameVariable"/>
124 </rule>
125 <rule pattern="\.[\w-]+">
126 <token type="NameVariable"/>
127 </rule>
128 <rule pattern="(this\/|\.\/|(\.\.\/)+)[\w-]+">
129 <token type="NameVariable"/>
130 </rule>
131 </state>
132 <state name="generic">
133 <rule>
134 <include state="variable"/>
135 </rule>
136 <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
137 <token type="LiteralStringDouble"/>
138 </rule>
139 <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
140 <token type="LiteralStringSingle"/>
141 </rule>
142 <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
143 <token type="LiteralNumber"/>
144 </rule>
145 </state>
146 </rules>
147</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml
new file mode 100644
index 0000000..6dc6912
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/haskell.xml
@@ -0,0 +1,272 @@
1<lexer>
2 <config>
3 <name>Haskell</name>
4 <alias>haskell</alias>
5 <alias>hs</alias>
6 <filename>*.hs</filename>
7 <mime_type>text/x-haskell</mime_type>
8 </config>
9 <rules>
10 <state name="escape">
11 <rule pattern="[abfnrtv&#34;\&#39;&amp;\\]">
12 <token type="LiteralStringEscape"/>
13 <pop depth="1"/>
14 </rule>
15 <rule pattern="\^[][\p{Lu}@^_]">
16 <token type="LiteralStringEscape"/>
17 <pop depth="1"/>
18 </rule>
19 <rule pattern="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">
20 <token type="LiteralStringEscape"/>
21 <pop depth="1"/>
22 </rule>
23 <rule pattern="o[0-7]+">
24 <token type="LiteralStringEscape"/>
25 <pop depth="1"/>
26 </rule>
27 <rule pattern="x[\da-fA-F]+">
28 <token type="LiteralStringEscape"/>
29 <pop depth="1"/>
30 </rule>
31 <rule pattern="\d+">
32 <token type="LiteralStringEscape"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="\s+\\">
36 <token type="LiteralStringEscape"/>
37 <pop depth="1"/>
38 </rule>
39 </state>
40 <state name="root">
41 <rule pattern="\s+">
42 <token type="Text"/>
43 </rule>
44 <rule pattern="--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?$">
45 <token type="CommentSingle"/>
46 </rule>
47 <rule pattern="\{-">
48 <token type="CommentMultiline"/>
49 <push state="comment"/>
50 </rule>
51 <rule pattern="\bimport\b">
52 <token type="KeywordReserved"/>
53 <push state="import"/>
54 </rule>
55 <rule pattern="\bmodule\b">
56 <token type="KeywordReserved"/>
57 <push state="module"/>
58 </rule>
59 <rule pattern="\berror\b">
60 <token type="NameException"/>
61 </rule>
62 <rule pattern="\b(case|class|data|default|deriving|do|else|family|if|in|infix[lr]?|instance|let|newtype|of|then|type|where|_)(?!\&#39;)\b">
63 <token type="KeywordReserved"/>
64 </rule>
65 <rule pattern="&#39;[^\\]&#39;">
66 <token type="LiteralStringChar"/>
67 </rule>
68 <rule pattern="^[_\p{Ll}][\w\&#39;]*">
69 <token type="NameFunction"/>
70 </rule>
71 <rule pattern="&#39;?[_\p{Ll}][\w&#39;]*">
72 <token type="Name"/>
73 </rule>
74 <rule pattern="(&#39;&#39;)?[\p{Lu}][\w\&#39;]*">
75 <token type="KeywordType"/>
76 </rule>
77 <rule pattern="(&#39;)[\p{Lu}][\w\&#39;]*">
78 <token type="KeywordType"/>
79 </rule>
80 <rule pattern="(&#39;)\[[^\]]*\]">
81 <token type="KeywordType"/>
82 </rule>
83 <rule pattern="(&#39;)\([^)]*\)">
84 <token type="KeywordType"/>
85 </rule>
86 <rule pattern="\\(?![:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
87 <token type="NameFunction"/>
88 </rule>
89 <rule pattern="(&lt;-|::|-&gt;|=&gt;|=)(?![:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
90 <token type="OperatorWord"/>
91 </rule>
92 <rule pattern=":[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]*">
93 <token type="KeywordType"/>
94 </rule>
95 <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
96 <token type="Operator"/>
97 </rule>
98 <rule pattern="\d+[eE][+-]?\d+">
99 <token type="LiteralNumberFloat"/>
100 </rule>
101 <rule pattern="\d+\.\d+([eE][+-]?\d+)?">
102 <token type="LiteralNumberFloat"/>
103 </rule>
104 <rule pattern="0[oO][0-7]+">
105 <token type="LiteralNumberOct"/>
106 </rule>
107 <rule pattern="0[xX][\da-fA-F]+">
108 <token type="LiteralNumberHex"/>
109 </rule>
110 <rule pattern="\d+">
111 <token type="LiteralNumberInteger"/>
112 </rule>
113 <rule pattern="&#39;">
114 <token type="LiteralStringChar"/>
115 <push state="character"/>
116 </rule>
117 <rule pattern="&#34;">
118 <token type="LiteralString"/>
119 <push state="string"/>
120 </rule>
121 <rule pattern="\[\]">
122 <token type="KeywordType"/>
123 </rule>
124 <rule pattern="\(\)">
125 <token type="NameBuiltin"/>
126 </rule>
127 <rule pattern="[][(),;`{}]">
128 <token type="Punctuation"/>
129 </rule>
130 </state>
131 <state name="import">
132 <rule pattern="\s+">
133 <token type="Text"/>
134 </rule>
135 <rule pattern="&#34;">
136 <token type="LiteralString"/>
137 <push state="string"/>
138 </rule>
139 <rule pattern="\)">
140 <token type="Punctuation"/>
141 <pop depth="1"/>
142 </rule>
143 <rule pattern="qualified\b">
144 <token type="Keyword"/>
145 </rule>
146 <rule pattern="([\p{Lu}][\w.]*)(\s+)(as)(\s+)([\p{Lu}][\w.]*)">
147 <bygroups>
148 <token type="NameNamespace"/>
149 <token type="Text"/>
150 <token type="Keyword"/>
151 <token type="Text"/>
152 <token type="Name"/>
153 </bygroups>
154 <pop depth="1"/>
155 </rule>
156 <rule pattern="([\p{Lu}][\w.]*)(\s+)(hiding)(\s+)(\()">
157 <bygroups>
158 <token type="NameNamespace"/>
159 <token type="Text"/>
160 <token type="Keyword"/>
161 <token type="Text"/>
162 <token type="Punctuation"/>
163 </bygroups>
164 <push state="funclist"/>
165 </rule>
166 <rule pattern="([\p{Lu}][\w.]*)(\s+)(\()">
167 <bygroups>
168 <token type="NameNamespace"/>
169 <token type="Text"/>
170 <token type="Punctuation"/>
171 </bygroups>
172 <push state="funclist"/>
173 </rule>
174 <rule pattern="[\w.]+">
175 <token type="NameNamespace"/>
176 <pop depth="1"/>
177 </rule>
178 </state>
179 <state name="module">
180 <rule pattern="\s+">
181 <token type="Text"/>
182 </rule>
183 <rule pattern="([\p{Lu}][\w.]*)(\s+)(\()">
184 <bygroups>
185 <token type="NameNamespace"/>
186 <token type="Text"/>
187 <token type="Punctuation"/>
188 </bygroups>
189 <push state="funclist"/>
190 </rule>
191 <rule pattern="[\p{Lu}][\w.]*">
192 <token type="NameNamespace"/>
193 <pop depth="1"/>
194 </rule>
195 </state>
196 <state name="funclist">
197 <rule pattern="\s+">
198 <token type="Text"/>
199 </rule>
200 <rule pattern="[\p{Lu}]\w*">
201 <token type="KeywordType"/>
202 </rule>
203 <rule pattern="(_[\w\&#39;]+|[\p{Ll}][\w\&#39;]*)">
204 <token type="NameFunction"/>
205 </rule>
206 <rule pattern="--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?$">
207 <token type="CommentSingle"/>
208 </rule>
209 <rule pattern="\{-">
210 <token type="CommentMultiline"/>
211 <push state="comment"/>
212 </rule>
213 <rule pattern=",">
214 <token type="Punctuation"/>
215 </rule>
216 <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
217 <token type="Operator"/>
218 </rule>
219 <rule pattern="\(">
220 <token type="Punctuation"/>
221 <push state="funclist" state="funclist"/>
222 </rule>
223 <rule pattern="\)">
224 <token type="Punctuation"/>
225 <pop depth="2"/>
226 </rule>
227 </state>
228 <state name="comment">
229 <rule pattern="[^-{}]+">
230 <token type="CommentMultiline"/>
231 </rule>
232 <rule pattern="\{-">
233 <token type="CommentMultiline"/>
234 <push/>
235 </rule>
236 <rule pattern="-\}">
237 <token type="CommentMultiline"/>
238 <pop depth="1"/>
239 </rule>
240 <rule pattern="[-{}]">
241 <token type="CommentMultiline"/>
242 </rule>
243 </state>
244 <state name="character">
245 <rule pattern="[^\\&#39;]&#39;">
246 <token type="LiteralStringChar"/>
247 <pop depth="1"/>
248 </rule>
249 <rule pattern="\\">
250 <token type="LiteralStringEscape"/>
251 <push state="escape"/>
252 </rule>
253 <rule pattern="&#39;">
254 <token type="LiteralStringChar"/>
255 <pop depth="1"/>
256 </rule>
257 </state>
258 <state name="string">
259 <rule pattern="[^\\&#34;]+">
260 <token type="LiteralString"/>
261 </rule>
262 <rule pattern="\\">
263 <token type="LiteralStringEscape"/>
264 <push state="escape"/>
265 </rule>
266 <rule pattern="&#34;">
267 <token type="LiteralString"/>
268 <pop depth="1"/>
269 </rule>
270 </state>
271 </rules>
272</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml
new file mode 100644
index 0000000..d3ed208
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hcl.xml
@@ -0,0 +1,143 @@
1<lexer>
2 <config>
3 <name>HCL</name>
4 <alias>hcl</alias>
5 <filename>*.hcl</filename>
6 <mime_type>application/x-hcl</mime_type>
7 </config>
8 <rules>
9 <state name="punctuation">
10 <rule pattern="[\[\](),.]">
11 <token type="Punctuation"/>
12 </rule>
13 </state>
14 <state name="string">
15 <rule pattern="(&#34;.*&#34;)">
16 <bygroups>
17 <token type="LiteralStringDouble"/>
18 </bygroups>
19 </rule>
20 </state>
21 <state name="whitespace">
22 <rule pattern="\n">
23 <token type="Text"/>
24 </rule>
25 <rule pattern="\s+">
26 <token type="Text"/>
27 </rule>
28 <rule pattern="\\\n">
29 <token type="Text"/>
30 </rule>
31 </state>
32 <state name="root">
33 <rule>
34 <include state="string"/>
35 </rule>
36 <rule>
37 <include state="punctuation"/>
38 </rule>
39 <rule>
40 <include state="curly"/>
41 </rule>
42 <rule>
43 <include state="basic"/>
44 </rule>
45 <rule>
46 <include state="whitespace"/>
47 </rule>
48 <rule pattern="[0-9]+">
49 <token type="LiteralNumber"/>
50 </rule>
51 </state>
52 <state name="basic">
53 <rule pattern="\b(false|true)\b">
54 <token type="KeywordType"/>
55 </rule>
56 <rule pattern="\s*/\*">
57 <token type="CommentMultiline"/>
58 <push state="comment"/>
59 </rule>
60 <rule pattern="\s*#.*\n">
61 <token type="CommentSingle"/>
62 </rule>
63 <rule pattern="(.*?)(\s*)(=)">
64 <bygroups>
65 <token type="Name"/>
66 <token type="Text"/>
67 <token type="Operator"/>
68 </bygroups>
69 </rule>
70 <rule pattern="\d+">
71 <token type="LiteralNumber"/>
72 </rule>
73 <rule pattern="\b\w+\b">
74 <token type="Keyword"/>
75 </rule>
76 <rule pattern="\$\{">
77 <token type="LiteralStringInterpol"/>
78 <push state="var_builtin"/>
79 </rule>
80 </state>
81 <state name="curly">
82 <rule pattern="\{">
83 <token type="TextPunctuation"/>
84 </rule>
85 <rule pattern="\}">
86 <token type="TextPunctuation"/>
87 </rule>
88 </state>
89 <state name="function">
90 <rule pattern="(\s+)(&#34;.*&#34;)(\s+)">
91 <bygroups>
92 <token type="Text"/>
93 <token type="LiteralString"/>
94 <token type="Text"/>
95 </bygroups>
96 </rule>
97 <rule>
98 <include state="punctuation"/>
99 </rule>
100 <rule>
101 <include state="curly"/>
102 </rule>
103 </state>
104 <state name="var_builtin">
105 <rule pattern="\$\{">
106 <token type="LiteralStringInterpol"/>
107 <push/>
108 </rule>
109 <rule pattern="\b(element|concat|lookup|file|join)\b">
110 <token type="NameBuiltin"/>
111 </rule>
112 <rule>
113 <include state="string"/>
114 </rule>
115 <rule>
116 <include state="punctuation"/>
117 </rule>
118 <rule pattern="\s+">
119 <token type="Text"/>
120 </rule>
121 <rule pattern="\}">
122 <token type="LiteralStringInterpol"/>
123 <pop depth="1"/>
124 </rule>
125 </state>
126 <state name="comment">
127 <rule pattern="[^*/]">
128 <token type="CommentMultiline"/>
129 </rule>
130 <rule pattern="/\*">
131 <token type="CommentMultiline"/>
132 <push/>
133 </rule>
134 <rule pattern="\*/">
135 <token type="CommentMultiline"/>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="[*/]">
139 <token type="CommentMultiline"/>
140 </rule>
141 </state>
142 </rules>
143</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml
new file mode 100644
index 0000000..a6f28ea
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hexdump.xml
@@ -0,0 +1,189 @@
1<lexer>
2 <config>
3 <name>Hexdump</name>
4 <alias>hexdump</alias>
5 </config>
6 <rules>
7 <state name="offset">
8 <rule pattern="^([0-9A-Ha-h]+)(:)">
9 <bygroups>
10 <token type="NameLabel"/>
11 <token type="Punctuation"/>
12 </bygroups>
13 <push state="offset-mode"/>
14 </rule>
15 <rule pattern="^[0-9A-Ha-h]+">
16 <token type="NameLabel"/>
17 </rule>
18 </state>
19 <state name="offset-mode">
20 <rule pattern="\s">
21 <token type="Text"/>
22 <pop depth="1"/>
23 </rule>
24 <rule pattern="[0-9A-Ha-h]+">
25 <token type="NameLabel"/>
26 </rule>
27 <rule pattern=":">
28 <token type="Punctuation"/>
29 </rule>
30 </state>
31 <state name="piped-strings">
32 <rule pattern="\n">
33 <token type="Text"/>
34 </rule>
35 <rule>
36 <include state="offset"/>
37 </rule>
38 <rule pattern="[0-9A-Ha-h]{2}">
39 <token type="LiteralNumberHex"/>
40 </rule>
41 <rule pattern="(\s{2,3})(\|)(.{1,16})(\|)$">
42 <bygroups>
43 <token type="Text"/>
44 <token type="Punctuation"/>
45 <token type="LiteralString"/>
46 <token type="Punctuation"/>
47 </bygroups>
48 </rule>
49 <rule pattern="\s">
50 <token type="Text"/>
51 </rule>
52 <rule pattern="^\*">
53 <token type="Punctuation"/>
54 </rule>
55 </state>
56 <state name="bracket-strings">
57 <rule pattern="\n">
58 <token type="Text"/>
59 </rule>
60 <rule>
61 <include state="offset"/>
62 </rule>
63 <rule pattern="[0-9A-Ha-h]{2}">
64 <token type="LiteralNumberHex"/>
65 </rule>
66 <rule pattern="(\s{2,3})(\&gt;)(.{1,16})(\&lt;)$">
67 <bygroups>
68 <token type="Text"/>
69 <token type="Punctuation"/>
70 <token type="LiteralString"/>
71 <token type="Punctuation"/>
72 </bygroups>
73 </rule>
74 <rule pattern="\s">
75 <token type="Text"/>
76 </rule>
77 <rule pattern="^\*">
78 <token type="Punctuation"/>
79 </rule>
80 </state>
81 <state name="nonpiped-strings">
82 <rule pattern="\n">
83 <token type="Text"/>
84 </rule>
85 <rule>
86 <include state="offset"/>
87 </rule>
88 <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
89 <bygroups>
90 <token type="LiteralNumberHex"/>
91 <token type="Punctuation"/>
92 <token type="LiteralNumberHex"/>
93 </bygroups>
94 </rule>
95 <rule pattern="[0-9A-Ha-h]{2}">
96 <token type="LiteralNumberHex"/>
97 </rule>
98 <rule pattern="(\s{19,})(.{1,20}?)$">
99 <bygroups>
100 <token type="Text"/>
101 <token type="LiteralString"/>
102 </bygroups>
103 </rule>
104 <rule pattern="(\s{2,3})(.{1,20})$">
105 <bygroups>
106 <token type="Text"/>
107 <token type="LiteralString"/>
108 </bygroups>
109 </rule>
110 <rule pattern="\s">
111 <token type="Text"/>
112 </rule>
113 <rule pattern="^\*">
114 <token type="Punctuation"/>
115 </rule>
116 </state>
117 <state name="root">
118 <rule pattern="\n">
119 <token type="Text"/>
120 </rule>
121 <rule>
122 <include state="offset"/>
123 </rule>
124 <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
125 <bygroups>
126 <token type="LiteralNumberHex"/>
127 <token type="Punctuation"/>
128 <token type="LiteralNumberHex"/>
129 </bygroups>
130 </rule>
131 <rule pattern="[0-9A-Ha-h]{2}">
132 <token type="LiteralNumberHex"/>
133 </rule>
134 <rule pattern="(\s{2,3})(\&gt;)(.{16})(\&lt;)$">
135 <bygroups>
136 <token type="Text"/>
137 <token type="Punctuation"/>
138 <token type="LiteralString"/>
139 <token type="Punctuation"/>
140 </bygroups>
141 <push state="bracket-strings"/>
142 </rule>
143 <rule pattern="(\s{2,3})(\|)(.{16})(\|)$">
144 <bygroups>
145 <token type="Text"/>
146 <token type="Punctuation"/>
147 <token type="LiteralString"/>
148 <token type="Punctuation"/>
149 </bygroups>
150 <push state="piped-strings"/>
151 </rule>
152 <rule pattern="(\s{2,3})(\&gt;)(.{1,15})(\&lt;)$">
153 <bygroups>
154 <token type="Text"/>
155 <token type="Punctuation"/>
156 <token type="LiteralString"/>
157 <token type="Punctuation"/>
158 </bygroups>
159 </rule>
160 <rule pattern="(\s{2,3})(\|)(.{1,15})(\|)$">
161 <bygroups>
162 <token type="Text"/>
163 <token type="Punctuation"/>
164 <token type="LiteralString"/>
165 <token type="Punctuation"/>
166 </bygroups>
167 </rule>
168 <rule pattern="(\s{2,3})(.{1,15})$">
169 <bygroups>
170 <token type="Text"/>
171 <token type="LiteralString"/>
172 </bygroups>
173 </rule>
174 <rule pattern="(\s{2,3})(.{16}|.{20})$">
175 <bygroups>
176 <token type="Text"/>
177 <token type="LiteralString"/>
178 </bygroups>
179 <push state="nonpiped-strings"/>
180 </rule>
181 <rule pattern="\s">
182 <token type="Text"/>
183 </rule>
184 <rule pattern="^\*">
185 <token type="Punctuation"/>
186 </rule>
187 </state>
188 </rules>
189</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml
new file mode 100644
index 0000000..64e667d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hlb.xml
@@ -0,0 +1,149 @@
1<lexer>
2 <config>
3 <name>HLB</name>
4 <alias>hlb</alias>
5 <filename>*.hlb</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="(#.*)">
10 <bygroups>
11 <token type="CommentSingle"/>
12 </bygroups>
13 </rule>
14 <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
15 <bygroups>
16 <token type="LiteralNumber"/>
17 </bygroups>
18 </rule>
19 <rule pattern="((\b(true|false)\b))">
20 <bygroups>
21 <token type="NameBuiltin"/>
22 </bygroups>
23 </rule>
24 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
25 <bygroups>
26 <token type="KeywordType"/>
27 </bygroups>
28 </rule>
29 <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)(\()">
30 <bygroups>
31 <token type="NameFunction"/>
32 <token type="Punctuation"/>
33 </bygroups>
34 <push state="params"/>
35 </rule>
36 <rule pattern="(\{)">
37 <bygroups>
38 <token type="Punctuation"/>
39 </bygroups>
40 <push state="block"/>
41 </rule>
42 <rule pattern="(\n|\r|\r\n)">
43 <token type="Text"/>
44 </rule>
45 <rule pattern=".">
46 <token type="Text"/>
47 </rule>
48 </state>
49 <state name="string">
50 <rule pattern="&#34;">
51 <token type="LiteralString"/>
52 <pop depth="1"/>
53 </rule>
54 <rule pattern="\\&#34;">
55 <token type="LiteralString"/>
56 </rule>
57 <rule pattern="[^\\&#34;]+">
58 <token type="LiteralString"/>
59 </rule>
60 </state>
61 <state name="block">
62 <rule pattern="(\})">
63 <bygroups>
64 <token type="Punctuation"/>
65 </bygroups>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern="(#.*)">
69 <bygroups>
70 <token type="CommentSingle"/>
71 </bygroups>
72 </rule>
73 <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
74 <bygroups>
75 <token type="LiteralNumber"/>
76 </bygroups>
77 </rule>
78 <rule pattern="((\b(true|false)\b))">
79 <bygroups>
80 <token type="KeywordConstant"/>
81 </bygroups>
82 </rule>
83 <rule pattern="&#34;">
84 <token type="LiteralString"/>
85 <push state="string"/>
86 </rule>
87 <rule pattern="(with)">
88 <bygroups>
89 <token type="KeywordReserved"/>
90 </bygroups>
91 </rule>
92 <rule pattern="(as)([\t ]+)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
93 <bygroups>
94 <token type="KeywordReserved"/>
95 <token type="Text"/>
96 <token type="NameFunction"/>
97 </bygroups>
98 </rule>
99 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)([\t ]+)(\{)">
100 <bygroups>
101 <token type="KeywordType"/>
102 <token type="Text"/>
103 <token type="Punctuation"/>
104 </bygroups>
105 <push state="block"/>
106 </rule>
107 <rule pattern="(?!\b(?:scratch|image|resolve|http|checksum|chmod|filename|git|keepGitDir|local|includePatterns|excludePatterns|followPaths|generate|frontendInput|shell|run|readonlyRootfs|env|dir|user|network|security|host|ssh|secret|mount|target|localPath|uid|gid|mode|readonly|tmpfs|sourcePath|cache|mkdir|createParents|chown|createdTime|mkfile|rm|allowNotFound|allowWildcards|copy|followSymlinks|contentsOnly|unpack|createDestPath)\b)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
108 <bygroups>
109 <token type="NameOther"/>
110 </bygroups>
111 </rule>
112 <rule pattern="(\n|\r|\r\n)">
113 <token type="Text"/>
114 </rule>
115 <rule pattern=".">
116 <token type="Text"/>
117 </rule>
118 </state>
119 <state name="params">
120 <rule pattern="(\))">
121 <bygroups>
122 <token type="Punctuation"/>
123 </bygroups>
124 <pop depth="1"/>
125 </rule>
126 <rule pattern="(variadic)">
127 <bygroups>
128 <token type="Keyword"/>
129 </bygroups>
130 </rule>
131 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
132 <bygroups>
133 <token type="KeywordType"/>
134 </bygroups>
135 </rule>
136 <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
137 <bygroups>
138 <token type="NameOther"/>
139 </bygroups>
140 </rule>
141 <rule pattern="(\n|\r|\r\n)">
142 <token type="Text"/>
143 </rule>
144 <rule pattern=".">
145 <token type="Text"/>
146 </rule>
147 </state>
148 </rules>
149</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml
new file mode 100644
index 0000000..a0dae46
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/hy.xml
@@ -0,0 +1,104 @@
1<lexer>
2 <config>
3 <name>Hy</name>
4 <alias>hylang</alias>
5 <filename>*.hy</filename>
6 <mime_type>text/x-hy</mime_type>
7 <mime_type>application/x-hy</mime_type>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern=";.*$">
12 <token type="CommentSingle"/>
13 </rule>
14 <rule pattern="[,\s]+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="-?\d+\.\d+">
18 <token type="LiteralNumberFloat"/>
19 </rule>
20 <rule pattern="-?\d+">
21 <token type="LiteralNumberInteger"/>
22 </rule>
23 <rule pattern="0[0-7]+j?">
24 <token type="LiteralNumberOct"/>
25 </rule>
26 <rule pattern="0[xX][a-fA-F0-9]+">
27 <token type="LiteralNumberHex"/>
28 </rule>
29 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="&#39;(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
33 <token type="LiteralStringSymbol"/>
34 </rule>
35 <rule pattern="\\(.|[a-z]+)">
36 <token type="LiteralStringChar"/>
37 </rule>
38 <rule pattern="^(\s*)([rRuU]{,2}&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
39 <bygroups>
40 <token type="Text"/>
41 <token type="LiteralStringDoc"/>
42 </bygroups>
43 </rule>
44 <rule pattern="^(\s*)([rRuU]{,2}&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
45 <bygroups>
46 <token type="Text"/>
47 <token type="LiteralStringDoc"/>
48 </bygroups>
49 </rule>
50 <rule pattern="::?(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
51 <token type="LiteralStringSymbol"/>
52 </rule>
53 <rule pattern="~@|[`\&#39;#^~&amp;@]">
54 <token type="Operator"/>
55 </rule>
56 <rule>
57 <include state="py-keywords"/>
58 </rule>
59 <rule>
60 <include state="py-builtins"/>
61 </rule>
62 <rule pattern="(eval-when-compile|eval-and-compile|with-decorator|unquote-splice|quasiquote|list_comp|unquote|foreach|kwapply|import|not-in|unless|is-not|quote|progn|slice|assoc|first|while|when|rest|cond|&lt;&lt;=|-&gt;&gt;|for|get|&gt;&gt;=|let|cdr|car|is|-&gt;|do|in|\||~|,) ">
63 <token type="Keyword"/>
64 </rule>
65 <rule pattern="(defmacro|defclass|lambda|defun|defn|setv|def|fn) ">
66 <token type="KeywordDeclaration"/>
67 </rule>
68 <rule pattern="(repeatedly|take_while|iterator\?|iterable\?|instance\?|distinct|take_nth|numeric\?|iterate|filter|repeat|remove|even\?|none\?|cycle|zero\?|odd\?|pos\?|neg\?|take|drop|inc|dec|nth) ">
69 <token type="NameBuiltin"/>
70 </rule>
71 <rule pattern="(?&lt;=\()(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
72 <token type="NameFunction"/>
73 </rule>
74 <rule pattern="(?!#)[\w!$%*+&lt;=&gt;?/.#-]+">
75 <token type="NameVariable"/>
76 </rule>
77 <rule pattern="(\[|\])">
78 <token type="Punctuation"/>
79 </rule>
80 <rule pattern="(\{|\})">
81 <token type="Punctuation"/>
82 </rule>
83 <rule pattern="(\(|\))">
84 <token type="Punctuation"/>
85 </rule>
86 </state>
87 <state name="py-keywords">
88 <rule pattern="(yield from|continue|finally|lambda|assert|global|except|return|print|yield|while|break|raise|elif|pass|exec|else|with|try|for|del|as|if)\b">
89 <token type="Keyword"/>
90 </rule>
91 </state>
92 <state name="py-builtins">
93 <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|isinstance|basestring|issubclass|frozenset|raw_input|bytearray|enumerate|property|callable|reversed|execfile|hasattr|setattr|compile|complex|delattr|unicode|globals|getattr|unichr|reduce|xrange|buffer|intern|filter|locals|divmod|coerce|sorted|reload|object|slice|round|float|super|input|bytes|apply|tuple|range|iter|dict|long|type|hash|vars|next|file|exit|open|repr|eval|bool|list|bin|pow|zip|ord|oct|min|set|any|max|map|all|len|sum|int|dir|hex|chr|abs|cmp|str|id)\b">
94 <token type="NameBuiltin"/>
95 </rule>
96 <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b">
97 <token type="NameBuiltinPseudo"/>
98 </rule>
99 <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|UnicodeEncodeError|UnicodeDecodeError|DeprecationWarning|FloatingPointError|UnboundLocalError|KeyboardInterrupt|ZeroDivisionError|EnvironmentError|IndentationError|ArithmeticError|OverflowWarning|ReferenceError|RuntimeWarning|AttributeError|AssertionError|NotImplemented|UnicodeWarning|FutureWarning|BaseException|StopIteration|SyntaxWarning|OverflowError|StandardError|ImportWarning|GeneratorExit|RuntimeError|WindowsError|UnicodeError|LookupError|SyntaxError|SystemError|ImportError|MemoryError|UserWarning|ValueError|IndexError|SystemExit|Exception|TypeError|NameError|EOFError|VMSError|KeyError|TabError|IOError|OSError|Warning)\b">
100 <token type="NameException"/>
101 </rule>
102 </state>
103 </rules>
104</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml
new file mode 100644
index 0000000..9592d88
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/idris.xml
@@ -0,0 +1,216 @@
1<lexer>
2 <config>
3 <name>Idris</name>
4 <alias>idris</alias>
5 <alias>idr</alias>
6 <filename>*.idr</filename>
7 <mime_type>text/x-idris</mime_type>
8 </config>
9 <rules>
10 <state name="escape">
11 <rule pattern="[abfnrtv&#34;\&#39;&amp;\\]">
12 <token type="LiteralStringEscape"/>
13 <pop depth="1"/>
14 </rule>
15 <rule pattern="\^[][A-Z@^_]">
16 <token type="LiteralStringEscape"/>
17 <pop depth="1"/>
18 </rule>
19 <rule pattern="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">
20 <token type="LiteralStringEscape"/>
21 <pop depth="1"/>
22 </rule>
23 <rule pattern="o[0-7]+">
24 <token type="LiteralStringEscape"/>
25 <pop depth="1"/>
26 </rule>
27 <rule pattern="x[\da-fA-F]+">
28 <token type="LiteralStringEscape"/>
29 <pop depth="1"/>
30 </rule>
31 <rule pattern="\d+">
32 <token type="LiteralStringEscape"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="\s+\\">
36 <token type="LiteralStringEscape"/>
37 <pop depth="1"/>
38 </rule>
39 </state>
40 <state name="root">
41 <rule pattern="^(\s*)(%lib|link|flag|include|hide|freeze|access|default|logging|dynamic|name|error_handlers|language)">
42 <bygroups>
43 <token type="Text"/>
44 <token type="KeywordReserved"/>
45 </bygroups>
46 </rule>
47 <rule pattern="(\s*)(--(?![!#$%&amp;*+./&lt;=&gt;?@^|_~:\\]).*?)$">
48 <bygroups>
49 <token type="Text"/>
50 <token type="CommentSingle"/>
51 </bygroups>
52 </rule>
53 <rule pattern="(\s*)(\|{3}.*?)$">
54 <bygroups>
55 <token type="Text"/>
56 <token type="CommentSingle"/>
57 </bygroups>
58 </rule>
59 <rule pattern="(\s*)(\{-)">
60 <bygroups>
61 <token type="Text"/>
62 <token type="CommentMultiline"/>
63 </bygroups>
64 <push state="comment"/>
65 </rule>
66 <rule pattern="^(\s*)([^\s(){}]+)(\s*)(:)(\s*)">
67 <bygroups>
68 <token type="Text"/>
69 <token type="NameFunction"/>
70 <token type="Text"/>
71 <token type="OperatorWord"/>
72 <token type="Text"/>
73 </bygroups>
74 </rule>
75 <rule pattern="\b(case|class|data|default|using|do|else|if|in|infix[lr]?|instance|rewrite|auto|namespace|codata|mutual|private|public|abstract|total|partial|let|proof|of|then|static|where|_|with|pattern|term|syntax|prefix|postulate|parameters|record|dsl|impossible|implicit|tactics|intros|intro|compute|refine|exact|trivial)(?!\&#39;)\b">
76 <token type="KeywordReserved"/>
77 </rule>
78 <rule pattern="(import|module)(\s+)">
79 <bygroups>
80 <token type="KeywordReserved"/>
81 <token type="Text"/>
82 </bygroups>
83 <push state="module"/>
84 </rule>
85 <rule pattern="(&#39;&#39;)?[A-Z][\w\&#39;]*">
86 <token type="KeywordType"/>
87 </rule>
88 <rule pattern="[a-z][\w\&#39;]*">
89 <token type="Text"/>
90 </rule>
91 <rule pattern="(&lt;-|::|-&gt;|=&gt;|=)">
92 <token type="OperatorWord"/>
93 </rule>
94 <rule pattern="([(){}\[\]:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+)">
95 <token type="OperatorWord"/>
96 </rule>
97 <rule pattern="\d+[eE][+-]?\d+">
98 <token type="LiteralNumberFloat"/>
99 </rule>
100 <rule pattern="\d+\.\d+([eE][+-]?\d+)?">
101 <token type="LiteralNumberFloat"/>
102 </rule>
103 <rule pattern="0[xX][\da-fA-F]+">
104 <token type="LiteralNumberHex"/>
105 </rule>
106 <rule pattern="\d+">
107 <token type="LiteralNumberInteger"/>
108 </rule>
109 <rule pattern="&#39;">
110 <token type="LiteralStringChar"/>
111 <push state="character"/>
112 </rule>
113 <rule pattern="&#34;">
114 <token type="LiteralString"/>
115 <push state="string"/>
116 </rule>
117 <rule pattern="[^\s(){}]+">
118 <token type="Text"/>
119 </rule>
120 <rule pattern="\s+?">
121 <token type="Text"/>
122 </rule>
123 </state>
124 <state name="module">
125 <rule pattern="\s+">
126 <token type="Text"/>
127 </rule>
128 <rule pattern="([A-Z][\w.]*)(\s+)(\()">
129 <bygroups>
130 <token type="NameNamespace"/>
131 <token type="Text"/>
132 <token type="Punctuation"/>
133 </bygroups>
134 <push state="funclist"/>
135 </rule>
136 <rule pattern="[A-Z][\w.]*">
137 <token type="NameNamespace"/>
138 <pop depth="1"/>
139 </rule>
140 </state>
141 <state name="funclist">
142 <rule pattern="\s+">
143 <token type="Text"/>
144 </rule>
145 <rule pattern="[A-Z]\w*">
146 <token type="KeywordType"/>
147 </rule>
148 <rule pattern="(_[\w\&#39;]+|[a-z][\w\&#39;]*)">
149 <token type="NameFunction"/>
150 </rule>
151 <rule pattern="--.*$">
152 <token type="CommentSingle"/>
153 </rule>
154 <rule pattern="\{-">
155 <token type="CommentMultiline"/>
156 <push state="comment"/>
157 </rule>
158 <rule pattern=",">
159 <token type="Punctuation"/>
160 </rule>
161 <rule pattern="[:!#$%&amp;*+.\\/&lt;=&gt;?@^|~-]+">
162 <token type="Operator"/>
163 </rule>
164 <rule pattern="\(">
165 <token type="Punctuation"/>
166 <push state="funclist" state="funclist"/>
167 </rule>
168 <rule pattern="\)">
169 <token type="Punctuation"/>
170 <pop depth="2"/>
171 </rule>
172 </state>
173 <state name="comment">
174 <rule pattern="[^-{}]+">
175 <token type="CommentMultiline"/>
176 </rule>
177 <rule pattern="\{-">
178 <token type="CommentMultiline"/>
179 <push/>
180 </rule>
181 <rule pattern="-\}">
182 <token type="CommentMultiline"/>
183 <pop depth="1"/>
184 </rule>
185 <rule pattern="[-{}]">
186 <token type="CommentMultiline"/>
187 </rule>
188 </state>
189 <state name="character">
190 <rule pattern="[^\\&#39;]">
191 <token type="LiteralStringChar"/>
192 </rule>
193 <rule pattern="\\">
194 <token type="LiteralStringEscape"/>
195 <push state="escape"/>
196 </rule>
197 <rule pattern="&#39;">
198 <token type="LiteralStringChar"/>
199 <pop depth="1"/>
200 </rule>
201 </state>
202 <state name="string">
203 <rule pattern="[^\\&#34;]+">
204 <token type="LiteralString"/>
205 </rule>
206 <rule pattern="\\">
207 <token type="LiteralStringEscape"/>
208 <push state="escape"/>
209 </rule>
210 <rule pattern="&#34;">
211 <token type="LiteralString"/>
212 <pop depth="1"/>
213 </rule>
214 </state>
215 </rules>
216</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml
new file mode 100644
index 0000000..1cc0205
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/igor.xml
@@ -0,0 +1,47 @@
1<lexer>
2 <config>
3 <name>Igor</name>
4 <alias>igor</alias>
5 <alias>igorpro</alias>
6 <filename>*.ipf</filename>
7 <mime_type>text/ipf</mime_type>
8 <case_insensitive>true</case_insensitive>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="//.*$">
13 <token type="CommentSingle"/>
14 </rule>
15 <rule pattern="&#34;([^&#34;\\]|\\.)*&#34;">
16 <token type="LiteralString"/>
17 </rule>
18 <rule pattern="\b(AbortOnValue|AbortOnRTE|strswitch|endswitch|continue|default|endfor|endtry|switch|return|elseif|while|catch|endif|break|else|case|for|try|do|if)\b">
19 <token type="Keyword"/>
20 </rule>
21 <rule pattern="\b(strconstant|constant|variable|funcref|string|uint64|uint32|uint16|STRUCT|double|dfref|uchar|int16|int32|int64|float|WAVE|SVAR|NVAR|char)\b">
22 <token type="KeywordType"/>
23 </rule>
24 <rule pattern="\b(EndStructure|MultiThread|ThreadSafe|Structure|EndMacro|function|DoPrompt|override|Picture|SubMenu|window|Prompt|static|macro|Proc|Menu|end)\b">
25 <token type="KeywordReserved"/>
26 </rule>
27 <rule pattern="\b(ConvertGlobalStringTextEncoding|StatsCircularCorrelationTest|LinearFeedbackShiftRegister|StatsCircularTwoSampleTest|StatsLinearCorrelationTest|ITCUpdateFIFOPositionAll2|StatsMultiCorrelationTest|MFR_GetBrickletDeployData|MFR_GetResultFileMetaData|StatsAngularDistanceTest|MFR_GetVernissageVersion|StatsRankCorrelationTest|ITCGetAllChannelsConfig2|GISGetRegisteredFileInfo|AxonTelegraphFindServers|MFR_CheckForNewBricklets|MFR_GetBrickletMetaData|MFR_CreateOverviewTable|StatsWatsonUSquaredTest|StatsWatsonWilliamsTest|ITCConfigChannelUpload2|SavePackagePreferences|LoadPackagePreferences|StatsWheelerWatsonTest|DAQmx_DIO_WriteNewData|ITCUpdateFIFOPosition2|ParseOperationTemplate|GISRasterizeVectorData|MFR_GetXOPErrorMessage|MFR_GetBrickletRawData|StatsWRCorrelationTest|ITCConfigChannelReset2|MFR_GetResultFileName|ImageRemoveBackground|DAQmx_CTR_OutputPulse|ImageHistModification|ITCConfigAllChannels2|StatsLinearRegression|StatsContingencyTable|ImageAnalyzeParticles|GISGetVectorLayerInfo|MFR_GetReportTemplate|MultiThreadingControl|StatsWilcoxonRankTest|SphericalInterpolate|GISWriteGeometryData|StatsNPNominalSRTest|StatsCircularMoments|MFR_GetBrickletCount|GPIBWriteBinaryWave2|ITCFIFOAvailableAll2|DAQmx_CTR_PulseWidth|SphericalTriangulate|ITCGetChannelConfig2|ImageGenerateROIMask|DAQmx_CTR_CountEdges|ITCGetCurrentDevice2|AddWavesToViolinPlot|DAQmx_AI_SetupReader|StatsShapiroWilkTest|GISCreateVectorLayer|AppendMatrixContour|GetLastUserMenuInfo|CtrlNamedBackground|VDTWriteBinaryWave2|DuplicateDataFolder|MatrixLinearSolveTD|CreateAliasShortcut|MFR_CloseResultFile|SetWaveTextEncoding|StatsKendallTauTest|VISAWriteBinaryWave|StatsHodgesAjneTest|RemoveLayoutObjects|ITCGetSerialNumber2|ImageBoundaryToMask|GPIBReadBinaryWave2|MFR_GetBrickletData|DefaultTextEncoding|DAQmx_AO_SetOutputs|PopupContextualMenu|ITCGetErrorString2|ImageEdgeDetection|VDTOperationsPort2|DefaultGuiControls|AutoPositionWindow|ExperimentModified|FastGaussTransform|GISTransformCoords|AppendLayoutObject|VDTReadBinaryWave2|FTPCreateDirectory|StatsVariancesTest|NeuralNetworkTrain|VISAReadBinaryWave|StatsCircularMeans|MFR_OpenResultFile|HDF5ListAttributes|SetActiveSubwindow|ImageRegistration|HDF5ConvertColors|TickWavesFromAxis|StatsANOVA2NRTest|StatsANOVA2RMTest|ITCFIFOAvailable2|AddWavesToBoxPlot|NC_ListAttributes|MeasureStyledText|HDF5TestOperation|GetFileFolderInfo|SetFileFolderInfo|ITCGetDeviceInfo2|SoundInStartChart|GISLoadRasterData|MatrixLinearSolve|EstimatePeakSizes|GISLoadVectorData|ExecuteScriptText|StatsFriedmanTest|ModifyControlList|GISWriteFieldData|ITCConfigChannel2|DeleteAnnotations|GISUnRegisterFile|DAQmx_WaveformGen|RenameDataFolder|MarkPerfTestTime|ITCWriteDigital2|HilbertTransform|ImageUnwrapPhase|HDF5UnlinkObject|LayoutPageAction|GPIBWriteBinary2|VDTTerminalPort2|StatsScheffeTest|ImageInterpolate|ITCSelectDevice2|ThreadGroupPutDF|FindPointsInPoly|AppendViolinPlot|DisplayHelpTopic|DisplayProcedure|RemoveFromLayout|StatsDunnettTest|StatsCochranTest|ImageLineProfile|GISGetRasterInfo|DAQmx_DIO_Config|ModifyViolinPlot|DAQmx_CTR_Period|NeuralNetworkRun|SoundInStopChart|VDTWriteHexWave2|AppendXYZContour|AddFIFOVectData|PlayMovieAction|ImageMorphology|HDF5CreateGroup|ITCReadDigital2|MatrixTranspose|WignerTransform|VISAWriteBinary|ITCGetVersions2|ITCCloseDevice2|VDTWriteBinary2|RatioFromNumber|StatsANOVA1Test|LayoutSlideShow|RemoveFromGizmo|RemoveFromGraph|RemoveFromTable|GISRegisterFile|StatsANOVA2Test|SetProcessSleep|VDTReadHexWave2|ImageSkeleton3d|VDTGetPortList2|DebuggerOptions|GPIBReadBinary2|SetIgorMenuMode|ModifyWaterfall|MCC_FindServers|LombPeriodogram|StatsQuantiles|MoveDataFolder|MatrixConvolve|AppendToLayout|BackgroundInfo|VISAReadBinary|ModifyFreeAxis|GISWriteRaster|ImageTransform|ImageThreshold|MatrixMultiply|DefaultGuiFont|SQLHighLevelOp|ITCGetDevices2|HDF5CloseGroup|NC_ListObjects|HDF5CreateFile|DSPPeriodogram|HDF5CreateLink|NotebookAction|HDF5DumpErrors|GPIBWriteWave2|WindowFunction|ExperimentInfo|ITCInitialize2|MFR_GetVersion|ITCOpenDevice2|SaveExperiment|FindDuplicates|ImageHistogram|KillDataFolder|ITCSetGlobals2|VDTReadBinary2|CtrlBackground|KillBackground|CheckDisplayed|StatsTukeyTest|HideProcedures|JointHistogram|SetDashPattern|ImageComposite|HDF5LoadGroup|ControlUpdate|CopyDimLabels|ToCommandLine|ColorTab2Wave|CreateBrowser|Triangulate3d|ImageFileInfo|VDTClosePort2|MatrixInverse|HideIgorMenus|HDF5SaveImage|HDF5SaveGroup|StatsSignTest|HDF5OpenGroup|HDF5LoadImage|HDF5ListGroup|CustomControl|HDF5FlushFile|HDF5DumpState|VDTWriteWave2|StatsResample|HDF5CloseFile|MatrixSVBkSub|ImageSeedFill|ModifyBoxPlot|ModifyBrowser|MatrixLUBkSub|ModifyContour|ModifyControl|VDTGetStatus2|GraphWaveEdit|GraphWaveDraw|PrintSettings|MoveSubwindow|GPIBReadWave2|StatsNPMCTest|Differentiate|Interpolate3D|AppendToTable|SetIdlePeriod|MultiTaperPSD|SoundSaveWave|AppendToGraph|AppendToGizmo|NC_DumpErrors|AppendBoxPlot|VISAWriteWave|WaveTransform|DrawUserShape|AddMovieFrame|AddMovieAudio|SoundLoadWave|NewDataFolder|SoundInRecord|PrintNotebook|ShowIgorMenus|RemoveContour|SetRandomSeed|KillVariables|ReorderImages|ITCReadTimer2|ReorderTraces|SaveGraphCopy|SaveTableCopy|SetIgorOption|SetBackground|JCAMPLoadWave|SetDataFolder|SoundInStatus|SaveGizmoCopy|DeletePoints|ITCStartAcq2|ITCSetState2|ITCSetModes2|NewWaterfall|OpenNotebook|WaveMeanStdv|KillFreeAxis|PauseForUser|VISAReadWave|NC_CloseFile|GetSelection|BoundingBall|PrimeFactors|VDTWriteHex2|VDTReadWave2|MoveVariable|ITCGetState2|ITCCloseAll2|PutScrapText|Interp3DPath|VDTOpenPort2|FPClustering|Interpolate2|FindSequence|RenameWindow|ModifyLayout|ResumeUpdate|ModifyCamera|HDFReadImage|IntegrateODE|SumDimension|SaveNotebook|MatrixEigenV|MatrixFilter|MatrixGaussJ|SetDrawLayer|InsertPoints|HDF5LoadData|HDF5OpenFile|StatsChiTest|HDF5SaveData|SmoothCustom|StackWindows|DeleteFolder|ImageFromXYZ|StatsDIPTest|ImageRestore|NewFIFOChan|StatsJBTest|ImageRotate|MatrixSolve|MatrixSchur|DefineGuide|StatsKWTest|MatrixLUDTD|ImageFilter|SplitString|SortColumns|DelayUpdate|SetWaveLock|SetVariable|ExportGizmo|ITCStopAcq2|ImageWindow|DefaultFont|SetIgorHook|HDFReadVset|StatsSample|SetDimLabel|StatsSRTest|TDMLoadData|TDMSaveData|FindContour|Integrate2D|ReplaceWave|ReplaceText|ModifyGizmo|ModifyGraph|ModifyImage|ControlInfo|ModifyPanel|ModifyTable|GraphNormal|ThreadStart|TileWindows|RemoveImage|Concatenate|Redimension|ChooseColor|VDTReadHex2|PrintLayout|PrintGraphs|VISAControl|ITCReadADC2|KillStrings|Preferences|FTPDownload|PauseUpdate|AppendImage|NC_LoadData|NC_OpenFile|AddFIFOData|KillControl|NewNotebook|NewFreeAxis|StatsKSTest|ConvexHull|GBLoadWave|ITCSetDAC2|AdoptFiles|DSPDetrend|ImageBlend|ImageFocus|AppendText|SetMarquee|DrawBezier|NILoadWave|DrawAction|KillWindow|SetFormula|MLLoadWave|SetDrawEnv|DoIgorMenu|FIFOStatus|HDFReadSDS|XLLoadWave|ImageSnake|CloseMovie|GetMarquee|DeleteFile|FindLevels|ImageStats|MatrixCorr|NC_Inquire|RenamePICT|ValDisplay|RenamePath|URLRequest|ColorScale|MoveWindow|StatsTTest|RemovePath|ControlBar|PrintTable|GPIBWrite2|PulseStats|CopyScales|TabControl|DAQmx_Scan|CopyFolder|MoveString|MoveFolder|StructFill|SoundInSet|StatsFTest|FReadLine|Integrate|SumSeries|GPIBRead2|MakeIndex|FTPDelete|Correlate|ToolsGrid|GetWindow|PopupMenu|PlaySound|FTPUpload|PlayMovie|MatrixGLM|FindValue|IndexSort|MatrixLLS|MatrixLUD|CloseProc|CloseHelp|GetCamera|FindLevel|ShowTools|ImageSave|StructGet|FindAPeak|MatrixSVD|FilterIIR|FilterFIR|EdgeStats|FIFO2Wave|BuildMenu|ImageLoad|BrowseURL|BoxSmooth|FuncFitMD|DoXOPIdle|VDTWrite2|FBinWrite|KillWaves|ImageGLCM|KillPICTs|VISAWrite|NewCamera|SplitWave|WaveStats|HideTools|StructPut|DrawRRect|SetWindow|ErrorBars|NewLayout|Duplicate|Histogram|FindRoots|Debugger|NewGizmo|NewImage|wfprintf|NewMovie|KillFIFO|KillPath|NewPanel|VISARead|CheckBox|ShowInfo|DrawText|Notebook|DrawRect|SetScale|HideInfo|OpenHelp|DrawPoly|VDTRead2|Optimize|PathInfo|DrawPICT|DrawOval|DrawLine|GetGizmo|Variable|FBinRead|HDF5Dump|GetMouse|MoveWave|LoadData|DoUpdate|TitleBox|LoadPICT|LoadWave|FindPeak|Convolve|CopyFile|SavePICT|StatsKDE|FMaxFlat|SaveData|MatrixOP|MoveFile|CtrlFIFO|CurveFit|GroupBox|Resample|DoWindow|FSetPos|ListBox|Extract|Reverse|DrawArc|sprintf|Execute|NewFIFO|FStatus|Hanning|DoAlert|HDFInfo|TextBox|SetAxis|fprintf|FGetPos|Project|GetAxis|NewPath|FuncFit|Display|FastOp|Remove|NI4882|String|Silent|Layout|Legend|Append|Button|sscanf|Smooth|Modify|Slider|KMeans|printf|Unwrap|APMath|Rotate|Cursor|Rename|Abort|Label|Remez|Cross|Loess|Stack|Chart|Sleep|GPIB2|Print|Close|Save|Sort|DPSS|Grep|Open|Tile|VDT2|Make|IFFT|Edit|Beep|Note|Quit|STFT|pwd|dir|Tag|DWT|FFT|PCA|ICA|CWT|cd)\b">
28 <token type="NameClass"/>
29 </rule>
30 <rule pattern="\b(TDMGetChannelStringPropertyLen|MCC_SetSlowCurrentInjSetlTime|tango_set_attr_monitor_period|TDMGetLibraryErrorDescription|MCC_GetSlowCurrentInjSetlTime|TDMGetGroupStringPropertyLen|fDAQmx_CTR_SetPulseFrequency|TDMGetFileStringPropertyLen|MCC_SetSlowCurrentInjEnable|MCC_GetSlowCompTauX20Enable|MCC_GetSlowCurrentInjEnable|fDAQmx_WF_WaitUntilFinished|MCC_SetSlowCompTauX20Enable|AxonTelegraphAGetDataStruct|MCC_GetNeutralizationEnable|MCC_SetNeutralizationEnable|AxonTelegraphAGetDataString|fDAQmx_CTR_ReadWithOptions|fDAQmx_ScanWaitWithTimeout|fDAQmx_DisconnectTerminals|MCC_GetWholeCellCompResist|MCC_SetSecondarySignalGain|fDAQmx_CTR_IsPulseFinished|MCC_GetSecondarySignalGain|TDMGetChannelPropertyNames|AxonTelegraphGetDataString|AxonTelegraphGetDataStruct|MCC_GetWholeCellCompEnable|MCC_SetWholeCellCompResist|TDMGetNumChannelProperties|MCC_SetWholeCellCompEnable|tango_suspend_attr_monitor|MCC_GetSlowCurrentInjLevel|tango_reload_dev_interface|MCC_SetSlowCurrentInjLevel|AxonTelegraphSetTimeoutMs|AxonTelegraphGetTimeoutMs|tango_resume_attr_monitor|TDMSetChannelPropertyTime|MCC_SetSecondarySignalLPF|MCC_GetSecondarySignalLPF|zeromq_test_serializeWave|SQLTextWaveTo2DBinaryWave|zeromq_test_serializeWave|TDMGetChannelPropertyTime|SQL2DBinaryWaveToTextWave|TDMGetChannelPropertyType|TDMSetChannelPropertyStr|TDMGetNumGroupProperties|MCC_SetNeutralizationCap|MCC_SetPrimarySignalGain|TDMGetGroupPropertyNames|SQLBinaryWavesToTextWave|TDMReplaceDataValuesTime|TDMGetChannelPropertyNum|TDMGetChannelPropertyStr|TDMSetChannelPropertyNum|TDMCreateChannelProperty|MCC_SelectMultiClamp700B|tango_start_attr_monitor|GetIndependentModuleName|AxonTelegraphAGetDataNum|MCC_GetNeutralizationCap|MCC_GetPrimarySignalGain|UnsetEnvironmentVariable|zeromq_test_callfunction|zeromq_test_callfunction|TDMChannelPropertyExists|tango_compute_image_proj|SQLTextWaveToBinaryWaves|MCC_SetPrimarySignalHPF|MCC_GetRsCompCorrection|MCC_GetPrimarySignalLPF|TDMGetFilePropertyNames|MCC_SetWholeCellCompCap|TDMGetGroupPropertyTime|TDMGetGroupPropertyType|MCC_SetRsCompPrediction|MCC_SetRsCompCorrection|MCC_GetRsCompPrediction|MCC_SetPrimarySignalLPF|fDAQmx_ConnectTerminals|TDMGetNumFileProperties|SQLNumResultRowsIfKnown|fDAQmx_AO_UpdateOutputs|tango_get_dev_black_box|fDAQmx_ScanGetAvailable|fDAQmx_ScanGetNextIndex|TDMAppendDataValuesTime|tango_stop_attr_monitor|tango_get_dev_attr_list|MCC_GetPrimarySignalHPF|TDMSetGroupPropertyTime|MCC_GetWholeCellCompCap|AxonTelegraphGetDataNum|fDAQmx_NumAnalogOutputs|TDMSetGroupPropertyNum|TDMSetGroupPropertyStr|TDMSetFilePropertyTime|StatsInvRectangularCDF|MCC_SetBridgeBalEnable|MCC_GetBridgeBalEnable|MCC_GetBridgeBalResist|MCC_GetOscKillerEnable|fDAQmx_SelfCalibration|tango_write_attributes|MCC_SetOscKillerEnable|TDMGroupPropertyExists|fDAQmx_ExternalCalDate|tango_get_dev_cmd_list|SetEnvironmentVariable|fDAQmx_NumAnalogInputs|TDMCreateGroupProperty|TDMGetFilePropertyType|MCC_SetRsCompBandwidth|TDMGetGroupPropertyStr|MCC_GetRsCompBandwidth|fDAQmx_CTR_ReadCounter|TDMGetGroupPropertyNum|TDMGetFilePropertyTime|MCC_SetBridgeBalResist|GetEnvironmentVariable|TDMGetFilePropertyNum|tango_set_dev_timeout|TDMFilePropertyExists|tango_write_attribute|fDAQmx_CTR_IsFinished|StatsInvTriangularCDF|zeromq_client_connect|zeromq_client_connect|MCC_AutoWholeCellComp|TDMCreateFileProperty|TDMGetFilePropertyStr|GetWavesDataFolderDFR|TDMSetFilePropertyStr|TDMSetFilePropertyNum|tango_get_dev_timeout|tango_get_error_stack|tango_read_attributes|IndependentModuleList|MCC_AutoPipetteOffset|zeromq_handler_start|zeromq_handler_start|tango_read_attribute|fDAQmx_WaveformStart|viGetAttributeString|viSetAttributeString|SpecialCharacterInfo|SpecialCharacterList|TDMSetDataValuesTime|SQLGetConnectAttrNum|SQLGetConnectAttrStr|fDAQmx_WF_IsFinished|fDAQmx_ReadNamedChan|SQLSetConnectAttrNum|SQLSetConnectAttrStr|GISGetAllFileFormats|TDMGetDataValuesTime|tango_get_dev_status|ContourNameToWaveRef|MCC_SetHoldingEnable|SQLUpdateBoundValues|GetIndexedObjNameDFR|MCC_SetPipetteOffset|fDAQmx_DIO_PortWidth|MCC_GetHoldingEnable|MCC_GetPipetteOffset|StatsInvGeometricCDF|StatsInvNBinomialCDF|StatsInvLogNormalCDF|ThreadProcessorCount|TDMReplaceDataValues|FontSizeStringWidth|tango_command_inout|GetBrowserSelection|StatsInvFriedmanCDF|MCC_SetRsCompEnable|TDMGetNumDataValues|ConvertTextEncoding|GetDefaultFontStyle|StatsInvBinomialCDF|fDAQmx_WaveformStop|fDAQmx_CTR_Finished|fDAQmx_AI_GetReader|StatsInvRayleighCDF|DataFolderRefStatus|zeromq_handler_stop|StatsInvSpearmanCDF|TDMAppendDataValues|StatsSpearmanRhoCDF|StatsInvUsquaredCDF|SQLColumnPrivileges|StatsRectangularPDF|StatsRectangularCDF|StatsInvVonMisesCDF|MCC_GetRsCompEnable|fDAQmx_DIO_Finished|zeromq_handler_stop|SQLProcedureColumns|CaptureHistoryStart|StatsInvLogisticCDF|DataFolderRefsEqual|SQLSetDescFieldNum|ThreadGroupRelease|zeromq_server_recv|TraceNameToWaveRef|StatsInvWeibullCDF|SQLGetDiagFieldStr|GetWavesDataFolder|SQLGetDiagFieldNum|SQLGetDescFieldStr|SQLGetDescFieldNum|zeromq_server_bind|MCC_GetFastCompCap|SQLTablePrivileges|SQLColAttributeStr|SQLColAttributeNum|StatsInvTopDownCDF|StatsInvStudentCDF|SphericalHarmonics|StatsTriangularCDF|viAssertIntrSignal|fDAQmx_SelfCalDate|ReplaceStringByKey|ImageNameToWaveRef|viAssertUtilSignal|ReplaceNumberByKey|MCC_GetFastCompTau|StatsTriangularPDF|BinarySearchInterp|StatsVonMisesNoise|MPFXExpConvExpPeak|fDAQmx_ResetDevice|zeromq_server_send|fDAQmx_ErrorString|tango_close_device|MCC_GetSlowCompCap|fDAQmx_NumDIOPorts|fDAQmx_NumCounters|zeromq_server_bind|MCC_SetSlowCompTau|MCC_SetSlowCompCap|StatsInvPoissonCDF|GetDefaultFontSize|MCC_GetSlowCompTau|zeromq_server_recv|zeromq_client_recv|zeromq_client_recv|SQLSetDescFieldStr|MCC_SetFastCompTau|zeromq_server_send|StatsInvMaxwellCDF|fDAQmx_DeviceNames|zeromq_client_send|MCC_SetFastCompCap|zeromq_client_send|ListToWaveRefWave|TDMGetNumChannels|ThreadGroupCreate|XWaveRefFromTrace|MPFXLorenzianPeak|viVxiCommandQuery|NewFreeDataFolder|SQLGetStmtAttrNum|SQLBulkOperations|HDF5AttributeInfo|MCC_AutoBridgeBal|SQLGetStmtAttrStr|PossiblyQuoteName|SQLNumRowsFetched|SQLSetStmtAttrNum|ThreadGroupGetDFR|SQLSetStmtAttrStr|SQLSpecialColumns|viGpibPassControl|StatsGeometricCDF|StatsGeometricPDF|StatsInvCauchyCDF|StatsInvEValueCDF|StatsInvKuiperCDF|StatsInvNormalCDF|StatsInvParetoCDF|WaveRefWaveToList|StatsLogNormalCDF|StatsLogNormalPDF|ThreadReturnValue|StatsNBinomialCDF|StatsNBinomialPDF|WaveRefIndexedDFR|tango_open_device|GetIndexedObjName|tango_ping_device|StatsLogisticCDF|fDAQmx_ScanStart|MCC_AutoSlowComp|MCC_AutoFastComp|ScreenResolution|SQLSetCursorName|StatsInvMooreCDF|GISSRefsAreEqual|fDAQmx_DIO_Write|SQLSetEnvAttrNum|StatsRayleighCDF|fDAQmx_WriteChan|SQLDriverConnect|SQLGetCursorName|StatsInvCMSSDCDF|SQLDescribeParam|SQLSetEnvAttrStr|StatsInvPowerCDF|StatsVonMisesPDF|PixelFromAxisVal|fDAQmx_CTR_Start|StatsInvNCChiCDF|SQLXOPCheckState|StatsInvGammaCDF|StatsTrimmedMean|WaveTextEncoding|StatsRayleighPDF|StatsUSquaredCDF|GetDataFolderDFR|TDMRemoveChannel|viGpibControlATN|SQLBrowseConnect|DataFolderExists|ThreadGroupGetDF|StatsVonMisesCDF|MCC_SetTimeoutMs|SQLBindParameter|TextEncodingName|TextEncodingCode|AxisValFromPixel|SQLGetEnvAttrNum|SQLGetEnvAttrStr|StatsBinomialCDF|TDMSetDataValues|StatsBinomialPDF|SQLNumResultCols|viGpibControlREN|NormalizeUnicode|StatsFriedmanCDF|StatsCorrelation|StatsLogisticPDF|TDMGetDataValues|StrVarOrDefault|SphericalBessJD|StatsPoissonCDF|ControlNameList|viUsbControlOut|SphericalBessYD|StatsStudentCDF|NumVarOrDefault|StatsStudentPDF|StatsPoissonPDF|TDMGetNumGroups|SQLGetFunctions|StatsMaxwellCDF|ChildWindowList|PanelResolution|ThreadGroupWait|HDF5DatasetInfo|viDiscardEvents|HDF5LibraryInfo|ContourNameList|GetRTErrMessage|StatsWeibullPDF|StatsMaxwellPDF|fDAQmx_ScanStop|StatsInvDExpCDF|StatsTopDownCDF|StatsPowerNoise|viOpenDefaultRM|lorentzianNoise|fDAQmx_ScanWait|fDAQmx_DIO_Read|MatrixCondition|CountObjectsDFR|viAssertTrigger|fDAQmx_ReadChan|StatsInvBetaCDF|SQLReinitialize|TDMCloseChannel|StatsWeibullCDF|MandelbrotPoint|SQLFreeConnect|CaptureHistory|TDMGetDataType|TDMGetChannels|RemoveListItem|RemoveFromList|GetBrowserLine|GetRTStackInfo|ParamIsDefault|StatsInvChiCDF|SQLPrimaryKeys|StringFromList|GetDefaultFont|TDMRemoveGroup|StatsKuiperCDF|StatsCauchyCDF|SQLFetchScroll|SQLForeignKeys|SQLMoreResults|SQLGetTypeInfo|StatsCauchyPDF|SpecialDirPath|SphericalBessJ|StatsErlangCDF|SphericalBessY|StatsErlangPDF|FontSizeHeight|SQLAllocHandle|StatsEValueCDF|StatsEValuePDF|viSetAttribute|StatsParetoCDF|StatsInvExpCDF|AnnotationList|StatsInvNCFCDF|TraceFromPixel|viUsbControlIn|viUnmapTrigger|ListToTextWave|WaveRefIndexed|viUnmapAddress|SQLDataSources|logNormalNoise|SQLDescribeCol|MCC_SetHolding|StatsParetoPDF|viGetAttribute|viDisableEvent|StatsHyperGCDF|StatsHyperGPDF|StatsNormalCDF|MCC_GetHolding|StatsNormalPDF|SQLCloseCursor|AnnotationInfo|SQLStatistics|SQLFreeHandle|viGpibSendIFC|StatsNCChiCDF|SQLExecDirect|SQLDisconnect|SQLGetDataNum|SQLGetDataStr|GetErrMessage|expIntegralE1|SQLGetDescRec|WaveRefsEqual|TDMAddChannel|SQLGetDiagRec|StatsMooreCDF|WhichListItem|StatsGammaPDF|SQLGetInfoNum|SQLGetInfoStr|StatsGammaCDF|GuideNameList|viWaitOnEvent|StatsNCChiPDF|TraceNameList|viEnableEvent|LaguerreGauss|TDMCloseGroup|TDMCreateFile|StatsErrorPDF|MPFXGaussPeak|MPFXVoigtPeak|StatsCMSSDCDF|SQLProcedures|DataFolderDir|StatsPowerPDF|WinRecreation|ImageNameList|ReplaceString|GetDataFolder|binomialNoise|TDMOpenFileEx|SQLSetDescRec|StatsInvQpCDF|ProcedureText|ParseFilePath|OperationList|StatsPowerCDF|GetRTLocation|viGpibCommand|GetRTLocInfo|poissonNoise|CountObjects|FunctionPath|FunctionList|GetScrapText|StatsWaldCDF|scaleToIndex|StartMSTimer|StatsBetaCDF|StatsBetaPDF|FunctionInfo|StatsInvQCDF|StatsWaldPDF|IndexToScale|RemoveEnding|StatsInvFCDF|DateToJulian|BinarySearch|StatsDExpCDF|StatsDExpPDF|SelectNumber|SelectString|SQLParamData|Base64Encode|Base64Decode|JulianToDate|viMapTrigger|SQLNumParams|viMapAddress|TDMCloseFile|FindListItem|SQLAllocStmt|FindDimLabel|HDF5TypeInfo|StatsPermute|VariableList|hermiteGauss|SQLNativeSql|viStatusDesc|CreationDate|TDMGetGroups|StatsRunsCDF|StatsGEVPDF|StatsGEVCDF|StatsExpPDF|StatsExpCDF|StatsChiPDF|StatsChiCDF|GetKeyState|GetUserData|SQLRowCount|StopMSTimer|StringByKey|stringmatch|SVAR_Exists|SQLFreeStmt|HyperGNoise|dilogarithm|TDMAddGroup|IgorVersion|sinIntegral|CsrXWaveRef|RemoveByKey|viMoveOut16|viMoveOut32|IndexedFile|PolygonArea|cosIntegral|inverseERFC|CleanupName|NVAR_Exists|FuncRefInfo|TDMOpenFile|NumberByKey|NewFreeWave|TDMSaveFile|Integrate1D|MPFXEMGPeak|ItemsInList|UnPadString|StatsMedian|zeromq_stop|MCC_SetMode|viTerminate|zeromq_stop|AddListItem|StatsNCFCDF|StatsNCFPDF|StatsNCTCDF|StatsNCTPDF|MatrixTrace|GetDimLabel|MCC_GetMode|ContourInfo|TrimString|FresnelCos|FresnelSin|MatrixRank|UniqueName|gammaEuler|SQLBindCol|StatsQpCDF|inverseERF|gammaNoise|NameOfWave|binomialln|zeromq_set|CsrWaveRef|WaveExists|zeromq_set|chebyshevU|viMoveIn16|GetFormula|equalWaves|SQLColumns|SQLConnect|GetRTError|SQLDrivers|viMoveIn32|LayoutInfo|GizmoScale|IndexedDir|SQLPutData|viFindRsrc|faverageXY|SQLPrepare|StringList|GrepString|viMemAlloc|SQLExecute|viMoveOut8|TagWaveRef|SQLFreeEnv|SQLEndTran|viFindNext|URLDecode|TableInfo|LaguerreA|URLEncode|VoigtPeak|strsearch|XWaveName|GuideInfo|PadString|VoigtFunc|MacroList|GizmoInfo|SQLSetPos|factorial|TraceInfo|SQLTables|DimOffset|LegendreA|StatsFCDF|HyperGPFQ|HyperG0F1|StatsFPDF|CheckName|WaveUnits|MatrixDet|chebyshev|SQLCancel|viMoveIn8|HyperG1F1|StatsQCDF|HyperG2F1|MatrixDot|ListMatch|viMemFree|Secs2Date|viReadSTB|date2secs|ImageInfo|Secs2Time|stringCRC|datetime|SortList|IgorInfo|CTabList|viUnlock|CsrXWave|sawtooth|DimDelta|LowerStr|WaveType|WaveName|expNoise|Faddeeva|fakedata|faverage|SQLError|SQLFetch|LambertW|ZernikeR|UpperStr|PICTList|ContourZ|PICTInfo|StudentA|viPeek16|PathList|GrepList|WaveDims|Variance|FetchURL|Laguerre|char2num|num2istr|num2char|JacobiSn|WaveHash|viPeek32|AxisInfo|viPoke16|WaveInfo|binomial|WaveList|JacobiCn|AxisList|TextFile|gammaInc|Interp3D|viPoke32|FontList|Interp2D|StudentT|Besselj|Besselk|Bessely|ModDate|viPoke8|numpnts|numtype|num2str|viPeek8|viOut32|viOut16|WinType|CsrInfo|CsrWave|r2polar|WinName|WinList|defined|digamma|DimSize|viWrite|WaveMin|str2num|WaveCRC|Gauss2D|MarcumQ|Gauss1D|WaveMax|viClear|Besseli|hermite|viClose|viOut8|interp|areaXY|cequal|gnoise|median|TagVal|viRead|strlen|wnoise|cmpstr|gammln|viIn16|viIn32|viLock|exists|AiryBD|Dawson|deltax|AiryAD|enoise|rightx|magsqr|expInt|p2rect|viOpen|poly2D|trunc|erfcw|pnt2x|AiryB|betai|floor|gamma|AiryA|viIn8|acosh|gammp|cpowi|x2pnt|ticks|round|gammq|asinh|limit|leftx|cmplx|Gauss|atan2|atanh|pcsr|Hash|hcsr|imag|atan|asin|area|alog|norm|note|poly|beta|conj|qcsr|erfc|real|sinh|cabs|sech|sign|date|csch|sinc|sqrt|xcsr|acos|coth|zeta|zcsr|tanh|cosh|time|ceil|mean|vcsr|cot|csc|tan|erf|exp|gcd|abs|Inf|sum|log|max|min|mod|NaN|sin|sec|cos|Pi|ln|ei)\b">
31 <token type="NameFunction"/>
32 </rule>
33 <rule pattern="^#(include|pragma|define|undef|ifdef|ifndef|if|elif|else|endif)">
34 <token type="NameDecorator"/>
35 </rule>
36 <rule pattern="[^a-z&#34;/]+$">
37 <token type="Text"/>
38 </rule>
39 <rule pattern=".">
40 <token type="Text"/>
41 </rule>
42 <rule pattern="\n|\r">
43 <token type="Text"/>
44 </rule>
45 </state>
46 </rules>
47</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml
new file mode 100644
index 0000000..88a742b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ini.xml
@@ -0,0 +1,40 @@
1<lexer>
2 <config>
3 <name>INI</name>
4 <alias>ini</alias>
5 <alias>cfg</alias>
6 <alias>dosini</alias>
7 <filename>*.ini</filename>
8 <filename>*.cfg</filename>
9 <filename>*.inf</filename>
10 <filename>.gitconfig</filename>
11 <filename>.editorconfig</filename>
12 <mime_type>text/x-ini</mime_type>
13 <mime_type>text/inf</mime_type>
14 </config>
15 <rules>
16 <state name="root">
17 <rule pattern="\s+">
18 <token type="Text"/>
19 </rule>
20 <rule pattern="[;#].*">
21 <token type="CommentSingle"/>
22 </rule>
23 <rule pattern="\[.*?\]$">
24 <token type="Keyword"/>
25 </rule>
26 <rule pattern="(.*?)([ \t]*)(=)([ \t]*)(.*(?:\n[ \t].+)*)">
27 <bygroups>
28 <token type="NameAttribute"/>
29 <token type="Text"/>
30 <token type="Operator"/>
31 <token type="Text"/>
32 <token type="LiteralString"/>
33 </bygroups>
34 </rule>
35 <rule pattern="(.+?)$">
36 <token type="NameAttribute"/>
37 </rule>
38 </state>
39 </rules>
40</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml
new file mode 100644
index 0000000..9ad94fa
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/io.xml
@@ -0,0 +1,71 @@
1<lexer>
2 <config>
3 <name>Io</name>
4 <alias>io</alias>
5 <filename>*.io</filename>
6 <mime_type>text/x-iosrc</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\n">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="//(.*?)\n">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="#(.*?)\n">
20 <token type="CommentSingle"/>
21 </rule>
22 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
23 <token type="CommentMultiline"/>
24 </rule>
25 <rule pattern="/\+">
26 <token type="CommentMultiline"/>
27 <push state="nestedcomment"/>
28 </rule>
29 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="::=|:=|=|\(|\)|;|,|\*|-|\+|&gt;|&lt;|@|!|/|\||\^|\.|%|&amp;|\[|\]|\{|\}">
33 <token type="Operator"/>
34 </rule>
35 <rule pattern="(clone|do|doFile|doString|method|for|if|else|elseif|then)\b">
36 <token type="Keyword"/>
37 </rule>
38 <rule pattern="(nil|false|true)\b">
39 <token type="NameConstant"/>
40 </rule>
41 <rule pattern="(Object|list|List|Map|args|Sequence|Coroutine|File)\b">
42 <token type="NameBuiltin"/>
43 </rule>
44 <rule pattern="[a-zA-Z_]\w*">
45 <token type="Name"/>
46 </rule>
47 <rule pattern="(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
48 <token type="LiteralNumberFloat"/>
49 </rule>
50 <rule pattern="\d+">
51 <token type="LiteralNumberInteger"/>
52 </rule>
53 </state>
54 <state name="nestedcomment">
55 <rule pattern="[^+/]+">
56 <token type="CommentMultiline"/>
57 </rule>
58 <rule pattern="/\+">
59 <token type="CommentMultiline"/>
60 <push/>
61 </rule>
62 <rule pattern="\+/">
63 <token type="CommentMultiline"/>
64 <pop depth="1"/>
65 </rule>
66 <rule pattern="[+/]">
67 <token type="CommentMultiline"/>
68 </rule>
69 </state>
70 </rules>
71</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml
new file mode 100644
index 0000000..872d081
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/j.xml
@@ -0,0 +1,157 @@
1<lexer>
2 <config>
3 <name>J</name>
4 <alias>j</alias>
5 <filename>*.ijs</filename>
6 <mime_type>text/x-j</mime_type>
7 </config>
8 <rules>
9 <state name="singlequote">
10 <rule pattern="[^&#39;]">
11 <token type="LiteralString"/>
12 </rule>
13 <rule pattern="&#39;&#39;">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="&#39;">
17 <token type="LiteralString"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="#!.*$">
23 <token type="CommentPreproc"/>
24 </rule>
25 <rule pattern="NB\..*">
26 <token type="CommentSingle"/>
27 </rule>
28 <rule pattern="\n+\s*Note">
29 <token type="CommentMultiline"/>
30 <push state="comment"/>
31 </rule>
32 <rule pattern="\s*Note.*">
33 <token type="CommentSingle"/>
34 </rule>
35 <rule pattern="\s+">
36 <token type="Text"/>
37 </rule>
38 <rule pattern="&#39;">
39 <token type="LiteralString"/>
40 <push state="singlequote"/>
41 </rule>
42 <rule pattern="0\s+:\s*0|noun\s+define\s*$">
43 <token type="NameEntity"/>
44 <push state="nounDefinition"/>
45 </rule>
46 <rule pattern="(([1-4]|13)\s+:\s*0|(adverb|conjunction|dyad|monad|verb)\s+define)\b">
47 <token type="NameFunction"/>
48 <push state="explicitDefinition"/>
49 </rule>
50 <rule pattern="(label_|goto_|for_)\b[a-zA-Z]\w*\.">
51 <token type="NameLabel"/>
52 </rule>
53 <rule pattern="(continue|select|return|assert|catchd|catcht|elseif|whilst|break|catch|fcase|while|throw|else|case|end|try|for|do|if)\.">
54 <token type="NameLabel"/>
55 </rule>
56 <rule pattern="\b[a-zA-Z]\w*">
57 <token type="NameVariable"/>
58 </rule>
59 <rule pattern="(timespacex|fixdotdot|nameclass|namelist|file2url|tmoutput|ucpcount|boxxopen|smoutput|JVERSION|datatype|toupper|tolower|alpha17|alpha27|getargs|evtloop|boxopen|fliprgb|inverse|scriptd|iospath|cutopen|isatty|toCRLF|toHOST|isutf8|getenv|stdout|script|usleep|sminfo|expand|stderr|clear|fetch|every|erase|empty|Debug|EMPTY|split|names|timex|cutLF|stdin|apply|items|table|exit|Note|list|take|leaf|type|bind|drop|rows|each|echo|sign|CRLF|utf8|sort|pick|ARGV|uucp|ucp|DEL|inv|hfd|dfh|def|LF2|EAV|toJ|TAB|nl|FF|LF|bx|nc|CR|on)">
60 <token type="NameFunction"/>
61 </rule>
62 <rule pattern="=[.:]">
63 <token type="Operator"/>
64 </rule>
65 <rule pattern="[-=+*#$%@!~`^&amp;&#34;;:.,&lt;&gt;{}\[\]\\|/]">
66 <token type="Operator"/>
67 </rule>
68 <rule pattern="[abCdDeEfHiIjLMoprtT]\.">
69 <token type="KeywordReserved"/>
70 </rule>
71 <rule pattern="[aDiLpqsStux]\:">
72 <token type="KeywordReserved"/>
73 </rule>
74 <rule pattern="(_[0-9])\:">
75 <token type="KeywordConstant"/>
76 </rule>
77 <rule pattern="\(">
78 <token type="Punctuation"/>
79 <push state="parentheses"/>
80 </rule>
81 <rule>
82 <include state="numbers"/>
83 </rule>
84 </state>
85 <state name="comment">
86 <rule pattern="[^)]">
87 <token type="CommentMultiline"/>
88 </rule>
89 <rule pattern="^\)">
90 <token type="CommentMultiline"/>
91 <pop depth="1"/>
92 </rule>
93 <rule pattern="[)]">
94 <token type="CommentMultiline"/>
95 </rule>
96 </state>
97 <state name="explicitDefinition">
98 <rule pattern="\b[nmuvxy]\b">
99 <token type="NameDecorator"/>
100 </rule>
101 <rule>
102 <include state="root"/>
103 </rule>
104 <rule pattern="[^)]">
105 <token type="Name"/>
106 </rule>
107 <rule pattern="^\)">
108 <token type="NameLabel"/>
109 <pop depth="1"/>
110 </rule>
111 <rule pattern="[)]">
112 <token type="Name"/>
113 </rule>
114 </state>
115 <state name="numbers">
116 <rule pattern="\b_{1,2}\b">
117 <token type="LiteralNumber"/>
118 </rule>
119 <rule pattern="_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?">
120 <token type="LiteralNumber"/>
121 </rule>
122 <rule pattern="_?\d+\.(?=\d+)">
123 <token type="LiteralNumberFloat"/>
124 </rule>
125 <rule pattern="_?\d+x">
126 <token type="LiteralNumberIntegerLong"/>
127 </rule>
128 <rule pattern="_?\d+">
129 <token type="LiteralNumberInteger"/>
130 </rule>
131 </state>
132 <state name="nounDefinition">
133 <rule pattern="[^)]">
134 <token type="LiteralString"/>
135 </rule>
136 <rule pattern="^\)">
137 <token type="NameLabel"/>
138 <pop depth="1"/>
139 </rule>
140 <rule pattern="[)]">
141 <token type="LiteralString"/>
142 </rule>
143 </state>
144 <state name="parentheses">
145 <rule pattern="\)">
146 <token type="Punctuation"/>
147 <pop depth="1"/>
148 </rule>
149 <rule>
150 <include state="explicitDefinition"/>
151 </rule>
152 <rule>
153 <include state="root"/>
154 </rule>
155 </state>
156 </rules>
157</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml
new file mode 100644
index 0000000..715f043
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/java.xml
@@ -0,0 +1,118 @@
1<lexer>
2 <config>
3 <name>Java</name>
4 <alias>java</alias>
5 <filename>*.java</filename>
6 <mime_type>text/x-java</mime_type>
7 <dot_all>true</dot_all>
8 <ensure_nl>true</ensure_nl>
9 </config>
10 <rules>
11 <state name="class">
12 <rule pattern="([^\W\d]|\$)[\w$]*">
13 <token type="NameClass"/>
14 <pop depth="1"/>
15 </rule>
16 </state>
17 <state name="import">
18 <rule pattern="[\w.]+\*?">
19 <token type="NameNamespace"/>
20 <pop depth="1"/>
21 </rule>
22 </state>
23 <state name="root">
24 <rule pattern="[^\S\n]+">
25 <token type="Text"/>
26 </rule>
27 <rule pattern="//.*?\n">
28 <token type="CommentSingle"/>
29 </rule>
30 <rule pattern="/\*.*?\*/">
31 <token type="CommentMultiline"/>
32 </rule>
33 <rule pattern="(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\b">
34 <token type="Keyword"/>
35 </rule>
36 <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
37 <bygroups>
38 <usingself state="root"/>
39 <token type="NameFunction"/>
40 <token type="Text"/>
41 <token type="Operator"/>
42 </bygroups>
43 </rule>
44 <rule pattern="@[^\W\d][\w.]*">
45 <token type="NameDecorator"/>
46 </rule>
47 <rule pattern="(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b">
48 <token type="KeywordDeclaration"/>
49 </rule>
50 <rule pattern="(boolean|byte|char|double|float|int|long|short|void)\b">
51 <token type="KeywordType"/>
52 </rule>
53 <rule pattern="(package)(\s+)">
54 <bygroups>
55 <token type="KeywordNamespace"/>
56 <token type="Text"/>
57 </bygroups>
58 <push state="import"/>
59 </rule>
60 <rule pattern="(true|false|null)\b">
61 <token type="KeywordConstant"/>
62 </rule>
63 <rule pattern="(class|interface)(\s+)">
64 <bygroups>
65 <token type="KeywordDeclaration"/>
66 <token type="Text"/>
67 </bygroups>
68 <push state="class"/>
69 </rule>
70 <rule pattern="(import(?:\s+static)?)(\s+)">
71 <bygroups>
72 <token type="KeywordNamespace"/>
73 <token type="Text"/>
74 </bygroups>
75 <push state="import"/>
76 </rule>
77 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
78 <token type="LiteralString"/>
79 </rule>
80 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
81 <token type="LiteralStringChar"/>
82 </rule>
83 <rule pattern="(\.)((?:[^\W\d]|\$)[\w$]*)">
84 <bygroups>
85 <token type="Operator"/>
86 <token type="NameAttribute"/>
87 </bygroups>
88 </rule>
89 <rule pattern="^\s*([^\W\d]|\$)[\w$]*:">
90 <token type="NameLabel"/>
91 </rule>
92 <rule pattern="([^\W\d]|\$)[\w$]*">
93 <token type="Name"/>
94 </rule>
95 <rule pattern="([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?">
96 <token type="LiteralNumberFloat"/>
97 </rule>
98 <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
99 <token type="LiteralNumberHex"/>
100 </rule>
101 <rule pattern="0[bB][01][01_]*[lL]?">
102 <token type="LiteralNumberBin"/>
103 </rule>
104 <rule pattern="0[0-7_]+[lL]?">
105 <token type="LiteralNumberOct"/>
106 </rule>
107 <rule pattern="0|[1-9][0-9_]*[lL]?">
108 <token type="LiteralNumberInteger"/>
109 </rule>
110 <rule pattern="[~^*!%&amp;\[\](){}&lt;&gt;|+=:;,./?-]">
111 <token type="Operator"/>
112 </rule>
113 <rule pattern="\n">
114 <token type="Text"/>
115 </rule>
116 </state>
117 </rules>
118</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml
new file mode 100644
index 0000000..f8e7b1b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/javascript.xml
@@ -0,0 +1,159 @@
1<lexer>
2 <config>
3 <name>JavaScript</name>
4 <alias>js</alias>
5 <alias>javascript</alias>
6 <filename>*.js</filename>
7 <filename>*.jsm</filename>
8 <filename>*.mjs</filename>
9 <mime_type>application/javascript</mime_type>
10 <mime_type>application/x-javascript</mime_type>
11 <mime_type>text/x-javascript</mime_type>
12 <mime_type>text/javascript</mime_type>
13 <dot_all>true</dot_all>
14 <ensure_nl>true</ensure_nl>
15 </config>
16 <rules>
17 <state name="interp">
18 <rule pattern="`">
19 <token type="LiteralStringBacktick"/>
20 <pop depth="1"/>
21 </rule>
22 <rule pattern="\\\\">
23 <token type="LiteralStringBacktick"/>
24 </rule>
25 <rule pattern="\\`">
26 <token type="LiteralStringBacktick"/>
27 </rule>
28 <rule pattern="\\[^`\\]">
29 <token type="LiteralStringBacktick"/>
30 </rule>
31 <rule pattern="\$\{">
32 <token type="LiteralStringInterpol"/>
33 <push state="interp-inside"/>
34 </rule>
35 <rule pattern="\$">
36 <token type="LiteralStringBacktick"/>
37 </rule>
38 <rule pattern="[^`\\$]+">
39 <token type="LiteralStringBacktick"/>
40 </rule>
41 </state>
42 <state name="interp-inside">
43 <rule pattern="\}">
44 <token type="LiteralStringInterpol"/>
45 <pop depth="1"/>
46 </rule>
47 <rule>
48 <include state="root"/>
49 </rule>
50 </state>
51 <state name="commentsandwhitespace">
52 <rule pattern="\s+">
53 <token type="Text"/>
54 </rule>
55 <rule pattern="&lt;!--">
56 <token type="Comment"/>
57 </rule>
58 <rule pattern="//.*?\n">
59 <token type="CommentSingle"/>
60 </rule>
61 <rule pattern="/\*.*?\*/">
62 <token type="CommentMultiline"/>
63 </rule>
64 </state>
65 <state name="slashstartsregex">
66 <rule>
67 <include state="commentsandwhitespace"/>
68 </rule>
69 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
70 <token type="LiteralStringRegex"/>
71 <pop depth="1"/>
72 </rule>
73 <rule pattern="(?=/)">
74 <token type="Text"/>
75 <push state="#pop" state="badregex"/>
76 </rule>
77 <rule>
78 <pop depth="1"/>
79 </rule>
80 </state>
81 <state name="badregex">
82 <rule pattern="\n">
83 <token type="Text"/>
84 <pop depth="1"/>
85 </rule>
86 </state>
87 <state name="root">
88 <rule pattern="\A#! ?/.*?\n">
89 <token type="CommentHashbang"/>
90 </rule>
91 <rule pattern="^(?=\s|/|&lt;!--)">
92 <token type="Text"/>
93 <push state="slashstartsregex"/>
94 </rule>
95 <rule>
96 <include state="commentsandwhitespace"/>
97 </rule>
98 <rule pattern="\d+(\.\d*|[eE][+\-]?\d+)">
99 <token type="LiteralNumberFloat"/>
100 </rule>
101 <rule pattern="0[bB][01]+">
102 <token type="LiteralNumberBin"/>
103 </rule>
104 <rule pattern="0[oO][0-7]+">
105 <token type="LiteralNumberOct"/>
106 </rule>
107 <rule pattern="0[xX][0-9a-fA-F]+">
108 <token type="LiteralNumberHex"/>
109 </rule>
110 <rule pattern="[0-9][0-9_]*">
111 <token type="LiteralNumberInteger"/>
112 </rule>
113 <rule pattern="\.\.\.|=&gt;">
114 <token type="Punctuation"/>
115 </rule>
116 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
117 <token type="Operator"/>
118 <push state="slashstartsregex"/>
119 </rule>
120 <rule pattern="[{(\[;,]">
121 <token type="Punctuation"/>
122 <push state="slashstartsregex"/>
123 </rule>
124 <rule pattern="[})\].]">
125 <token type="Punctuation"/>
126 </rule>
127 <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
128 <token type="Keyword"/>
129 <push state="slashstartsregex"/>
130 </rule>
131 <rule pattern="(var|let|with|function)\b">
132 <token type="KeywordDeclaration"/>
133 <push state="slashstartsregex"/>
134 </rule>
135 <rule pattern="(abstract|async|await|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">
136 <token type="KeywordReserved"/>
137 </rule>
138 <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
139 <token type="KeywordConstant"/>
140 </rule>
141 <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
142 <token type="NameBuiltin"/>
143 </rule>
144 <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
145 <token type="NameOther"/>
146 </rule>
147 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
148 <token type="LiteralStringDouble"/>
149 </rule>
150 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
151 <token type="LiteralStringSingle"/>
152 </rule>
153 <rule pattern="`">
154 <token type="LiteralStringBacktick"/>
155 <push state="interp"/>
156 </rule>
157 </state>
158 </rules>
159</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml
new file mode 100644
index 0000000..bbe10b1
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/json.xml
@@ -0,0 +1,110 @@
1<lexer>
2 <config>
3 <name>JSON</name>
4 <alias>json</alias>
5 <filename>*.json</filename>
6 <mime_type>application/json</mime_type>
7 <dot_all>true</dot_all>
8 <not_multiline>true</not_multiline>
9 </config>
10 <rules>
11 <state name="root">
12 <rule>
13 <include state="value"/>
14 </rule>
15 </state>
16 <state name="whitespace">
17 <rule pattern="\s+">
18 <token type="Text"/>
19 </rule>
20 </state>
21 <state name="comment">
22 <rule pattern="//.*?\n">
23 <token type="CommentSingle"/>
24 </rule>
25 </state>
26 <state name="simplevalue">
27 <rule pattern="(true|false|null)\b">
28 <token type="KeywordConstant"/>
29 </rule>
30 <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
31 <token type="LiteralNumberFloat"/>
32 </rule>
33 <rule pattern="-?(0|[1-9]\d*)">
34 <token type="LiteralNumberInteger"/>
35 </rule>
36 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
37 <token type="LiteralStringDouble"/>
38 </rule>
39 </state>
40 <state name="objectattribute">
41 <rule>
42 <include state="value"/>
43 </rule>
44 <rule pattern=":">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern=",">
48 <token type="Punctuation"/>
49 <pop depth="1"/>
50 </rule>
51 <rule pattern="\}">
52 <token type="Punctuation"/>
53 <pop depth="2"/>
54 </rule>
55 </state>
56 <state name="objectvalue">
57 <rule>
58 <include state="whitespace"/>
59 </rule>
60 <rule>
61 <include state="comment"/>
62 </rule>
63 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
64 <token type="NameTag"/>
65 <push state="objectattribute"/>
66 </rule>
67 <rule pattern="\}">
68 <token type="Punctuation"/>
69 <pop depth="1"/>
70 </rule>
71 </state>
72 <state name="arrayvalue">
73 <rule>
74 <include state="whitespace"/>
75 </rule>
76 <rule>
77 <include state="value"/>
78 </rule>
79 <rule>
80 <include state="comment"/>
81 </rule>
82 <rule pattern=",">
83 <token type="Punctuation"/>
84 </rule>
85 <rule pattern="\]">
86 <token type="Punctuation"/>
87 <pop depth="1"/>
88 </rule>
89 </state>
90 <state name="value">
91 <rule>
92 <include state="whitespace"/>
93 </rule>
94 <rule>
95 <include state="simplevalue"/>
96 </rule>
97 <rule>
98 <include state="comment"/>
99 </rule>
100 <rule pattern="\{">
101 <token type="Punctuation"/>
102 <push state="objectvalue"/>
103 </rule>
104 <rule pattern="\[">
105 <token type="Punctuation"/>
106 <push state="arrayvalue"/>
107 </rule>
108 </state>
109 </rules>
110</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml
new file mode 100644
index 0000000..776dcdb
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/julia.xml
@@ -0,0 +1,400 @@
1<lexer>
2 <config>
3 <name>Julia</name>
4 <alias>julia</alias>
5 <alias>jl</alias>
6 <filename>*.jl</filename>
7 <mime_type>text/x-julia</mime_type>
8 <mime_type>application/x-julia</mime_type>
9 </config>
10 <rules>
11 <state name="string">
12 <rule pattern="(&#34;)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
13 <bygroups>
14 <token type="LiteralString"/>
15 <token type="LiteralStringAffix"/>
16 </bygroups>
17 <pop depth="1"/>
18 </rule>
19 <rule pattern="\\([\\&#34;\&#39;$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
20 <token type="LiteralStringEscape"/>
21 </rule>
22 <rule>
23 <include state="interp"/>
24 </rule>
25 <rule pattern="%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
26 <token type="LiteralStringInterpol"/>
27 </rule>
28 <rule pattern="[^&#34;$%\\]+">
29 <token type="LiteralString"/>
30 </rule>
31 <rule pattern=".">
32 <token type="LiteralString"/>
33 </rule>
34 </state>
35 <state name="curly">
36 <rule pattern="\{">
37 <token type="Punctuation"/>
38 <push/>
39 </rule>
40 <rule pattern="\}">
41 <token type="Punctuation"/>
42 <pop depth="1"/>
43 </rule>
44 <rule pattern="(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
45 <token type="KeywordType"/>
46 </rule>
47 <rule>
48 <include state="root"/>
49 </rule>
50 </state>
51 <state name="rawstring">
52 <rule pattern="&#34;">
53 <token type="LiteralString"/>
54 <pop depth="1"/>
55 </rule>
56 <rule pattern="\\&#34;">
57 <token type="LiteralStringEscape"/>
58 </rule>
59 <rule pattern="([^&#34;\\]|\\[^&#34;])+">
60 <token type="LiteralString"/>
61 </rule>
62 </state>
63 <state name="tqcommand">
64 <rule pattern="(```)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
65 <bygroups>
66 <token type="LiteralStringBacktick"/>
67 <token type="LiteralStringAffix"/>
68 </bygroups>
69 <pop depth="1"/>
70 </rule>
71 <rule pattern="\\\$">
72 <token type="LiteralStringEscape"/>
73 </rule>
74 <rule>
75 <include state="interp"/>
76 </rule>
77 <rule pattern="[^\\`$]+">
78 <token type="LiteralStringBacktick"/>
79 </rule>
80 <rule pattern=".">
81 <token type="LiteralStringBacktick"/>
82 </rule>
83 </state>
84 <state name="in-intp">
85 <rule pattern="\(">
86 <token type="Punctuation"/>
87 <push/>
88 </rule>
89 <rule pattern="\)">
90 <token type="Punctuation"/>
91 <pop depth="1"/>
92 </rule>
93 <rule>
94 <include state="root"/>
95 </rule>
96 </state>
97 <state name="tqstring">
98 <rule pattern="(&#34;&#34;&#34;)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
99 <bygroups>
100 <token type="LiteralString"/>
101 <token type="LiteralStringAffix"/>
102 </bygroups>
103 <pop depth="1"/>
104 </rule>
105 <rule pattern="\\([\\&#34;\&#39;$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
106 <token type="LiteralStringEscape"/>
107 </rule>
108 <rule>
109 <include state="interp"/>
110 </rule>
111 <rule pattern="[^&#34;$%\\]+">
112 <token type="LiteralString"/>
113 </rule>
114 <rule pattern=".">
115 <token type="LiteralString"/>
116 </rule>
117 </state>
118 <state name="interp">
119 <rule pattern="\$(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
120 <token type="LiteralStringInterpol"/>
121 </rule>
122 <rule pattern="(\$)(\()">
123 <bygroups>
124 <token type="LiteralStringInterpol"/>
125 <token type="Punctuation"/>
126 </bygroups>
127 <push state="in-intp"/>
128 </rule>
129 </state>
130 <state name="tqregex">
131 <rule pattern="(&#34;&#34;&#34;)([imsxa]*)?">
132 <bygroups>
133 <token type="LiteralStringRegex"/>
134 <token type="LiteralStringAffix"/>
135 </bygroups>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="[^&#34;]+">
139 <token type="LiteralStringRegex"/>
140 </rule>
141 </state>
142 <state name="root">
143 <rule pattern="\n">
144 <token type="Text"/>
145 </rule>
146 <rule pattern="[^\S\n]+">
147 <token type="Text"/>
148 </rule>
149 <rule pattern="#=">
150 <token type="CommentMultiline"/>
151 <push state="blockcomment"/>
152 </rule>
153 <rule pattern="#.*$">
154 <token type="Comment"/>
155 </rule>
156 <rule pattern="[\[\](),;]">
157 <token type="Punctuation"/>
158 </rule>
159 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)(:)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
160 <bygroups>
161 <token type="Name"/>
162 <token type="Text"/>
163 <token type="Operator"/>
164 <token type="Name"/>
165 </bygroups>
166 </rule>
167 <rule pattern="(?&lt;![\]):&lt;&gt;\d.])(:(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
168 <token type="LiteralStringSymbol"/>
169 </rule>
170 <rule pattern="(?&lt;=::)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
171 <bygroups>
172 <token type="Text"/>
173 <token type="KeywordType"/>
174 </bygroups>
175 </rule>
176 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)([&lt;&gt;]:)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
177 <bygroups>
178 <token type="KeywordType"/>
179 <token type="Text"/>
180 <token type="Operator"/>
181 <token type="Text"/>
182 <token type="KeywordType"/>
183 </bygroups>
184 </rule>
185 <rule pattern="([&lt;&gt;]:)(\s*)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))\b(?![(\[])">
186 <bygroups>
187 <token type="Operator"/>
188 <token type="Text"/>
189 <token type="KeywordType"/>
190 </bygroups>
191 </rule>
192 <rule pattern="\b((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\s*)([&lt;&gt;]:)">
193 <bygroups>
194 <token type="KeywordType"/>
195 <token type="Text"/>
196 <token type="Operator"/>
197 </bygroups>
198 </rule>
199 <rule pattern="(&gt;&gt;&gt;=|&lt;--&gt;|≕&#39;|⊻=|⇁|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|//=|⥘|⥕|÷=|⥔|&lt;&lt;=|&gt;&gt;=|↑|⥑|⥏|↓|≔|⩴|√|⥍|⥌|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⥉|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|--&gt;|&lt;--|∛|⤓|⤒|⤋|≥|⤊|≤|⤉|===|≡|⤈|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⩚|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⟱|⟰|⇵|↓|…|⁝|⋮|⋱|⋰|⋯|↑|&gt;&gt;&gt;|⨟|⟗|⊕|⊖|⊞|⊟|⟖|∪|∨|⊔|⟕|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⨝|▷|⌿|⊍|⫛|⩠|⋅|∘|⩟|⩞|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⋸|⩜|∜|\^=|:=|\$=|÷|¬|\|\||±|\+\+|&amp;&amp;|¦|//|&gt;&gt;|&lt;&lt;|::|-=|\*=|\|&gt;|&lt;\||&gt;:|&lt;:|!=|==|&lt;=|&gt;=|/=|%=|-&gt;|=&gt;|\\=|&amp;=|\|=|×|\+=|:|&lt;|\+|\^|\\|=|-|\$|~|\||\*|\?|!|/|%|&amp;|&gt;)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
200 <token type="Operator"/>
201 </rule>
202 <rule pattern="(\.&gt;&gt;&gt;=|\.&lt;--&gt;|\.≕&#39;|\.⊻=|\.⇚|\.//=|\.⥯|\.⥮|\.÷=|\.⥥|\.&lt;&lt;=|\.&gt;&gt;=|\.↑|\.⥣|\.⥡|\.↓|\.≔|\.⩴|\.√|\.⥠|\.⥝|\.→|\.↔|\.↚|\.↛|\.↞|\.↠|\.↢|\.↣|\.↦|\.↤|\.↮|\.⇎|\.⇍|\.⇏|\.⇐|\.⇒|\.⇔|\.⇴|\.⇶|\.⇷|\.⇸|\.⇹|\.⇺|\.⇻|\.⇼|\.⇽|\.⇾|\.⇿|\.⟵|\.⟶|\.⟷|\.⟹|\.⟺|\.⟻|\.⟼|\.⟽|\.⟾|\.⟿|\.⤀|\.⤁|\.⤂|\.⤃|\.⤄|\.⤅|\.⤆|\.⤇|\.⤌|\.⤍|\.⤎|\.⤏|\.⤐|\.⤑|\.⤔|\.⤕|\.⤖|\.⤗|\.⤘|\.⤝|\.⤞|\.⤟|\.⤠|\.⥄|\.⥅|\.⥆|\.⥇|\.⥈|\.⥊|\.⥋|\.⥎|\.⥐|\.⥒|\.⥓|\.⥖|\.⥗|\.⥚|\.⥛|\.⥞|\.⥟|\.⥢|\.⥤|\.⥦|\.⥧|\.⥨|\.⥩|\.⥪|\.⥫|\.⥬|\.⥭|\.⥰|\.⧴|\.⬱|\.⬰|\.⬲|\.⬳|\.⬴|\.⬵|\.⬶|\.⬷|\.⬸|\.⬹|\.⬺|\.⬻|\.⬼|\.⬽|\.⬾|\.⬿|\.⭀|\.⭁|\.⭂|\.⭃|\.⭄|\.⭇|\.⭈|\.⭉|\.⭊|\.⭋|\.⭌|\.←|\.→|\.⇜|\.⇝|\.↜|\.↝|\.↩|\.↪|\.↫|\.↬|\.↼|\.↽|\.⇀|\.⇁|\.⇄|\.⇆|\.⇇|\.⇉|\.⇋|\.⇌|\.⥜|\.⇛|\.⇠|\.⇢|\.↷|\.↶|\.↺|\.↻|\.--&gt;|\.&lt;--|\.∛|\.⥙|\.⥘|\.⥕|\.≥|\.⥔|\.≤|\.⥑|\.===|\.≡|\.⥏|\.≠|\.!==|\.≢|\.∈|\.∉|\.∋|\.∌|\.⊆|\.⊈|\.⊂|\.⊄|\.⊊|\.∝|\.∊|\.∍|\.∥|\.∦|\.∷|\.∺|\.∻|\.∽|\.∾|\.≁|\.≃|\.≂|\.≄|\.≅|\.≆|\.≇|\.≈|\.≉|\.≊|\.≋|\.≌|\.≍|\.≎|\.≐|\.≑|\.≒|\.≓|\.≖|\.≗|\.≘|\.≙|\.≚|\.≛|\.≜|\.≝|\.≞|\.≟|\.≣|\.≦|\.≧|\.≨|\.≩|\.≪|\.≫|\.≬|\.≭|\.≮|\.≯|\.≰|\.≱|\.≲|\.≳|\.≴|\.≵|\.≶|\.≷|\.≸|\.≹|\.≺|\.≻|\.≼|\.≽|\.≾|\.≿|\.⊀|\.⊁|\.⊃|\.⊅|\.⊇|\.⊉|\.⊋|\.⊏|\.⊐|\.⊑|\.⊒|\.⊜|\.⊩|\.⊬|\.⊮|\.⊰|\.⊱|\.⊲|\.⊳|\.⊴|\.⊵|\.⊶|\.⊷|\.⋍|\.⋐|\.⋑|\.⋕|\.⋖|\.⋗|\.⋘|\.⋙|\.⋚|\.⋛|\.⋜|\.⋝|\.⋞|\.⋟|\.⋠|\.⋡|\.⋢|\.⋣|\.⋤|\.⋥|\.⋦|\.⋧|\.⋨|\.⋩|\.⋪|\.⋫|\.⋬|\.⋭|\.⋲|\.⋳|\.⋴|\.⋵|\.⋶|\.⋷|\.⋸|\.⋹|\.⋺|\.⋻|\.⟕|\.⋽|\.⋾|\.⋿|\.⟈|\.⟉|\.⟒|\.⦷|\.⧀|\.⧁|\.⧡|\.⧣|\.⧤|\.⧥|\.⩦|\.⩧|\.⩪|\.⩫|\.⩬|\.⩭|\.⩮|\.⩯|\.⩰|\.⩱|\.⩲|\.⩳|\.⩵|\.⩶|\.⩷|\.⩸|\.⩹|\.⩺|\.⩻|\.⩼|\.⩽|\.⩾|\.⩿|\.⪀|\.⪁|\.⪂|\.⪃|\.⪄|\.⪅|\.⪆|\.⪇|\.⪈|\.⪉|\.⪊|\.⪋|\.⪌|\.⪍|\.⪎|\.⪏|\.⪐|\.⪑|\.⪒|\.⪓|\.⪔|\.⪕|\.⪖|\.⪗|\.⪘|\.⪙|\.⪚|\.⪛|\.⪜|\.⪝|\.⪞|\.⪟|\.⪠|\.⪡|\.⪢|\.⪣|\.⪤|\.⪥|\.⪦|\.⪧|\.⪨|\.⪩|\.⪪|\.⪫|\.⪬|\.⪭|\.⪮|\.⪯|\.⪰|\.⪱|\.⪲|\.⪳|\.⪴|\.⪵|\.⪶|\.⪷|\.⪸|\.⪹|\.⪺|\.⪻|\.⪼|\.⪽|\.⪾|\.⪿|\.⫀|\.⫁|\.⫂|\.⫃|\.⫄|\.⫅|\.⫆|\.⫇|\.⫈|\.⫉|\.⫊|\.⫋|\.⫌|\.⫍|\.⫎|\.⫏|\.⫐|\.⫑|\.⫒|\.⫓|\.⫔|\.⫕|\.⫖|\.⫗|\.⫘|\.⫙|\.⫷|\.⫸|\.⫹|\.⫺|\.⊢|\.⊣|\.⟂|\.⥍|\.⥌|\.⥉|\.⤓|\.…|\.⁝|\.⋮|\.⋱|\.⋰|\.⋯|\.⤒|\.⤋|\.⤊|\.⤉|\.⊕|\.⊖|\.⊞|\.⊟|\.⤈|\.∪|\.∨|\.⊔|\.⟱|\.∓|\.∔|\.∸|\.≏|\.⊎|\.⊻|\.⊽|\.⋎|\.⋓|\.⧺|\.⧻|\.⨈|\.⨢|\.⨣|\.⨤|\.⨥|\.⨦|\.⨧|\.⨨|\.⨩|\.⨪|\.⨫|\.⨬|\.⨭|\.⨮|\.⨹|\.⨺|\.⩁|\.⩂|\.⩅|\.⩊|\.⩌|\.⩏|\.⩐|\.⩒|\.⩔|\.⩖|\.⩗|\.⩛|\.⩝|\.⩡|\.⩢|\.⩣|\.⟰|\.⇵|\.⌿|\.↓|\.↑|\.&gt;&gt;&gt;|\.⋅|\.∘|\.⨟|\.⟗|\.∩|\.∧|\.⊗|\.⊘|\.⊙|\.⊚|\.⊛|\.⊠|\.⊡|\.⊓|\.∗|\.∙|\.∤|\.⅋|\.≀|\.⊼|\.⋄|\.⋆|\.⋇|\.⋉|\.⋊|\.⋋|\.⋌|\.⋏|\.⋒|\.⟑|\.⦸|\.⦼|\.⦾|\.⦿|\.⧶|\.⧷|\.⨇|\.⨰|\.⨱|\.⨲|\.⨳|\.⨴|\.⨵|\.⨶|\.⨷|\.⨸|\.⨻|\.⨼|\.⨽|\.⩀|\.⩃|\.⩄|\.⩋|\.⩍|\.⩎|\.⩑|\.⩓|\.⩕|\.⩘|\.⩚|\.⩜|\.⩞|\.⩟|\.⩠|\.⫛|\.⊍|\.▷|\.⨝|\.⋼|\.⟖|\.∜|\.=&gt;|\.//|\.&gt;&gt;|\.&lt;&lt;|\.\+=|\.×|\.-=|\.÷|\.¬|\.\*=|\./=|\.\+\+|\.\\=|\.¦|\.\^=|\.!=|\.\|&gt;|\.&lt;\||\.&gt;:|\.&lt;:|\.±|\.==|\.&lt;=|\.&gt;=|\.%=|\.&amp;=|\.\|=|\.=|\.~|\.&gt;|\.\\|\.&lt;|\.-|\.\||\.\^|\.\*|\.!|\./|\.%|\.&amp;|\.\+)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
203 <token type="Operator"/>
204 </rule>
205 <rule pattern="(\.\.\.|\.\.)">
206 <token type="Operator"/>
207 </rule>
208 <rule pattern="&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\&#39;\n])&#39;">
209 <token type="LiteralStringChar"/>
210 </rule>
211 <rule pattern="(?&lt;=[.\w)\]])(\&#39;[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*)+">
212 <token type="Operator"/>
213 </rule>
214 <rule pattern="(raw)(&#34;&#34;&#34;)">
215 <bygroups>
216 <token type="LiteralStringAffix"/>
217 <token type="LiteralString"/>
218 </bygroups>
219 <push state="tqrawstring"/>
220 </rule>
221 <rule pattern="(raw)(&#34;)">
222 <bygroups>
223 <token type="LiteralStringAffix"/>
224 <token type="LiteralString"/>
225 </bygroups>
226 <push state="rawstring"/>
227 </rule>
228 <rule pattern="(r)(&#34;&#34;&#34;)">
229 <bygroups>
230 <token type="LiteralStringAffix"/>
231 <token type="LiteralStringRegex"/>
232 </bygroups>
233 <push state="tqregex"/>
234 </rule>
235 <rule pattern="(r)(&#34;)">
236 <bygroups>
237 <token type="LiteralStringAffix"/>
238 <token type="LiteralStringRegex"/>
239 </bygroups>
240 <push state="regex"/>
241 </rule>
242 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(&#34;&#34;&#34;)">
243 <bygroups>
244 <token type="LiteralStringAffix"/>
245 <token type="LiteralString"/>
246 </bygroups>
247 <push state="tqstring"/>
248 </rule>
249 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(&#34;)">
250 <bygroups>
251 <token type="LiteralStringAffix"/>
252 <token type="LiteralString"/>
253 </bygroups>
254 <push state="string"/>
255 </rule>
256 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(```)">
257 <bygroups>
258 <token type="LiteralStringAffix"/>
259 <token type="LiteralStringBacktick"/>
260 </bygroups>
261 <push state="tqcommand"/>
262 </rule>
263 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))?(`)">
264 <bygroups>
265 <token type="LiteralStringAffix"/>
266 <token type="LiteralStringBacktick"/>
267 </bygroups>
268 <push state="command"/>
269 </rule>
270 <rule pattern="((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))(\{)">
271 <bygroups>
272 <token type="KeywordType"/>
273 <token type="Punctuation"/>
274 </bygroups>
275 <push state="curly"/>
276 </rule>
277 <rule pattern="(where)(\s+)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
278 <bygroups>
279 <token type="Keyword"/>
280 <token type="Text"/>
281 <token type="KeywordType"/>
282 </bygroups>
283 </rule>
284 <rule pattern="(\{)">
285 <token type="Punctuation"/>
286 <push state="curly"/>
287 </rule>
288 <rule pattern="(abstract[ \t]+type|primitive[ \t]+type|mutable[ \t]+struct|struct)([\s()]+)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*))">
289 <bygroups>
290 <token type="Keyword"/>
291 <token type="Text"/>
292 <token type="KeywordType"/>
293 </bygroups>
294 </rule>
295 <rule pattern="@(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
296 <token type="NameDecorator"/>
297 </rule>
298 <rule pattern="@(&gt;&gt;&gt;=|&lt;--&gt;|≕&#39;|⊻=|↽|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|⥘|⥕|//=|⥔|⥑|÷=|⥏|&lt;&lt;=|&gt;&gt;=|↑|⥍|⥌|↓|≔|⩴|√|⥉|⤓|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|⤒|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|--&gt;|&lt;--|∛|⤋|⤊|⤉|≥|⤈|≤|⟱|===|≡|⟰|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⩕|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⇵|↓|↑|&gt;&gt;&gt;|…|⁝|⋮|⋱|⋰|⋯|⨟|⟗|⟖|⟕|⊕|⊖|⊞|⊟|⨝|∪|∨|⊔|▷|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⊍|⫛|⌿|⩠|⩟|⩞|⋅|∘|⩜|⩚|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⋷|⩘|∜|\\=|:=|\$=|÷|¬|\|\||±|\+\+|&amp;&amp;|¦|::|\.\.|//|&gt;&gt;|&lt;&lt;|\|&gt;|\+=|&lt;\||&gt;:|&lt;:|!=|==|&lt;=|&gt;=|-=|\*=|-&gt;|=&gt;|/=|&amp;=|\|=|%=|\^=|×|~|&gt;|&lt;|\^|=|\.|\+|-|\$|:|\||\*|\?|!|/|%|&amp;|\\)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
299 <token type="NameDecorator"/>
300 </rule>
301 <rule pattern="(baremodule|continue|function|finally|module|import|elseif|return|export|global|macro|catch|where|begin|const|ccall|using|quote|break|while|local|else|let|isa|try|for|end|in|if|do)\b">
302 <token type="Keyword"/>
303 </rule>
304 <rule pattern="(ProcessFailedException|InvalidStateException|ReadOnlyMemoryError|TaskFailedException|InterruptException|StackOverflowError|CompositeException|AbstractIrrational|SubstitutionString|ExponentialBackOff|UndefKeywordError|CapturedException|DimensionMismatch|AbstractUnitRange|SegmentationFault|PermutedDimsArray|AbstractVecOrMat|UndefInitializer|CartesianIndices|OutOfMemoryError|ComposedFunction|MissingException|StringIndexError|PartialQuickSort|AbstractDisplay|AbstractPattern|StridedVecOrMat|AbstractChannel|LineNumberNode|AbstractVector|CartesianIndex|AssertionError|IndexCartesian|ErrorException|AbstractMatrix|AbstractString|OverflowError|UndefRefError|LinearIndices|DenseVecOrMat|ArgumentError|StridedVector|StridedMatrix|AbstractArray|AbstractRange|ReentrantLock|AbstractMatch|AbstractFloat|VersionNumber|UndefVarError|RoundingMode|StridedArray|StepRangeLen|OrdinalRange|AbstractChar|AbstractDict|InexactError|DenseVector|WeakKeyDict|MethodError|AbstractSet|IndexLinear|BoundsError|TextDisplay|DomainError|DenseMatrix|SystemError|DivideError|NamedTuple|IndexStyle|Cptrdiff_t|Cuintmax_t|DenseArray|ComplexF16|Irrational|VecElement|Culonglong|RegexMatch|ComplexF32|ComplexF64|BitMatrix|BitVector|Exception|GlobalRef|UnitRange|QuoteNode|TypeError|IOContext|LoadError|Clonglong|Condition|StepRange|Cintmax_t|SubString|InitError|Cssize_t|VecOrMat|BigFloat|Unsigned|UnionAll|Rational|EOFError|BitArray|IOStream|IOBuffer|KeyError|LinRange|Cwchar_t|SubArray|Function|DataType|Cwstring|Csize_t|Float64|Missing|Float32|Complex|Cstring|Float16|Nothing|Cdouble|Cushort|UInt128|Integer|WeakRef|Channel|TypeVar|Cshort|Cfloat|NTuple|IdDict|BitSet|BigInt|UInt16|Symbol|UInt32|Vector|Signed|Vararg|Culong|String|Int128|Number|UInt64|Cuchar|Matrix|Module|Method|Tuple|Int16|Colon|Cuint|UInt8|Regex|Clong|Cvoid|Cchar|Int32|RawFD|Array|Union|Int64|Timer|Pipe|Type|HTML|Text|UInt|MIME|Char|Cint|Some|Expr|Real|Enum|Pair|Dims|Int8|Dict|Task|Bool|Any|Cmd|Int|Set|Ref|Ptr|Val|IO)\b">
305 <token type="KeywordType"/>
306 </rule>
307 <rule pattern="(RoundNearestTiesAway|RoundNearestTiesUp|InsertionSort|RoundFromZero|PROGRAM_FILE|RoundNearest|RoundToZero|ENDIAN_BOM|DEPOT_PATH|RoundDown|QuickSort|MergeSort|LOAD_PATH|VERSION|missing|nothing|devnull|RoundUp|C_NULL|stdout|stderr|NaN32|NaN16|Inf64|Inf32|Inf16|false|stdin|undef|NaN64|true|ARGS|ℯ|NaN|Inf|ENV|im|π|pi)\b">
308 <token type="NameBuiltin"/>
309 </rule>
310 <rule pattern="(?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)">
311 <token type="Name"/>
312 </rule>
313 <rule pattern="(\d+((_\d+)+)?\.(?!\.)(\d+((_\d+)+)?)?|\.\d+((_\d+)+)?)([eEf][+-]?[0-9]+)?">
314 <token type="LiteralNumberFloat"/>
315 </rule>
316 <rule pattern="\d+((_\d+)+)?[eEf][+-]?[0-9]+">
317 <token type="LiteralNumberFloat"/>
318 </rule>
319 <rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?(\.([a-fA-F0-9]+((_[a-fA-F0-9]+)+)?)?)?p[+-]?\d+">
320 <token type="LiteralNumberFloat"/>
321 </rule>
322 <rule pattern="0b[01]+((_[01]+)+)?">
323 <token type="LiteralNumberBin"/>
324 </rule>
325 <rule pattern="0o[0-7]+((_[0-7]+)+)?">
326 <token type="LiteralNumberOct"/>
327 </rule>
328 <rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?">
329 <token type="LiteralNumberHex"/>
330 </rule>
331 <rule pattern="\d+((_\d+)+)?">
332 <token type="LiteralNumberInteger"/>
333 </rule>
334 <rule pattern="(\.)">
335 <token type="Operator"/>
336 </rule>
337 </state>
338 <state name="blockcomment">
339 <rule pattern="[^=#]">
340 <token type="CommentMultiline"/>
341 </rule>
342 <rule pattern="#=">
343 <token type="CommentMultiline"/>
344 <push/>
345 </rule>
346 <rule pattern="=#">
347 <token type="CommentMultiline"/>
348 <pop depth="1"/>
349 </rule>
350 <rule pattern="[=#]">
351 <token type="CommentMultiline"/>
352 </rule>
353 </state>
354 <state name="command">
355 <rule pattern="(`)((?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)|\d+)?">
356 <bygroups>
357 <token type="LiteralStringBacktick"/>
358 <token type="LiteralStringAffix"/>
359 </bygroups>
360 <pop depth="1"/>
361 </rule>
362 <rule pattern="\\[`$]">
363 <token type="LiteralStringEscape"/>
364 </rule>
365 <rule>
366 <include state="interp"/>
367 </rule>
368 <rule pattern="[^\\`$]+">
369 <token type="LiteralStringBacktick"/>
370 </rule>
371 <rule pattern=".">
372 <token type="LiteralStringBacktick"/>
373 </rule>
374 </state>
375 <state name="tqrawstring">
376 <rule pattern="&#34;&#34;&#34;">
377 <token type="LiteralString"/>
378 <pop depth="1"/>
379 </rule>
380 <rule pattern="([^&#34;]|&#34;[^&#34;][^&#34;])+">
381 <token type="LiteralString"/>
382 </rule>
383 </state>
384 <state name="regex">
385 <rule pattern="(&#34;)([imsxa]*)?">
386 <bygroups>
387 <token type="LiteralStringRegex"/>
388 <token type="LiteralStringAffix"/>
389 </bygroups>
390 <pop depth="1"/>
391 </rule>
392 <rule pattern="\\&#34;">
393 <token type="LiteralStringRegex"/>
394 </rule>
395 <rule pattern="[^\\&#34;]+">
396 <token type="LiteralStringRegex"/>
397 </rule>
398 </state>
399 </rules>
400</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml
new file mode 100644
index 0000000..92c785d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/jungle.xml
@@ -0,0 +1,98 @@
1<lexer>
2 <config>
3 <name>Jungle</name>
4 <alias>jungle</alias>
5 <filename>*.jungle</filename>
6 <mime_type>text/x-jungle</mime_type>
7 </config>
8 <rules>
9 <state name="var">
10 <rule pattern="[^\S\n]+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\b(((re)?source|barrel)Path|excludeAnnotations|annotations|lang)\b">
14 <token type="NameBuiltin"/>
15 </rule>
16 <rule pattern="\bbase\b">
17 <token type="NameConstant"/>
18 </rule>
19 <rule pattern="\b(ind|zsm|hrv|ces|dan|dut|eng|fin|fre|deu|gre|hun|ita|nob|po[lr]|rus|sl[ov]|spa|swe|ara|heb|zh[st]|jpn|kor|tha|vie|bul|tur)">
20 <token type="NameConstant"/>
21 </rule>
22 <rule pattern="\b((semi)?round|rectangle)(-\d+x\d+)?\b">
23 <token type="NameConstant"/>
24 </rule>
25 <rule pattern="[\.;\[\]\(\$]">
26 <token type="Punctuation"/>
27 </rule>
28 <rule pattern="\)">
29 <token type="Punctuation"/>
30 <pop depth="1"/>
31 </rule>
32 <rule pattern="[a-zA-Z_]\w*">
33 <token type="Name"/>
34 </rule>
35 <rule>
36 <pop depth="1"/>
37 </rule>
38 </state>
39 <state name="root">
40 <rule pattern="[^\S\n]+">
41 <token type="Text"/>
42 </rule>
43 <rule pattern="\n">
44 <token type="Text"/>
45 </rule>
46 <rule pattern="#(\n|[\w\W]*?[^#]\n)">
47 <token type="CommentSingle"/>
48 </rule>
49 <rule pattern="^(?=\S)">
50 <token type="None"/>
51 <push state="instruction"/>
52 </rule>
53 <rule pattern="[\.;\[\]\(\)\$]">
54 <token type="Punctuation"/>
55 </rule>
56 <rule pattern="[a-zA-Z_]\w*">
57 <token type="Name"/>
58 </rule>
59 </state>
60 <state name="instruction">
61 <rule pattern="[^\S\n]+">
62 <token type="Text"/>
63 </rule>
64 <rule pattern="=">
65 <token type="Operator"/>
66 <push state="value"/>
67 </rule>
68 <rule pattern="(?=\S)">
69 <token type="None"/>
70 <push state="var"/>
71 </rule>
72 <rule>
73 <pop depth="1"/>
74 </rule>
75 </state>
76 <state name="value">
77 <rule pattern="[^\S\n]+">
78 <token type="Text"/>
79 </rule>
80 <rule pattern="\$\(">
81 <token type="Punctuation"/>
82 <push state="var"/>
83 </rule>
84 <rule pattern="[;\[\]\(\)\$]">
85 <token type="Punctuation"/>
86 </rule>
87 <rule pattern="#(\n|[\w\W]*?[^#]\n)">
88 <token type="CommentSingle"/>
89 </rule>
90 <rule pattern="[\w_\-\.\/\\]+">
91 <token type="Text"/>
92 </rule>
93 <rule>
94 <pop depth="1"/>
95 </rule>
96 </state>
97 </rules>
98</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml
new file mode 100644
index 0000000..87bc81c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/kotlin.xml
@@ -0,0 +1,220 @@
1<lexer>
2 <config>
3 <name>Kotlin</name>
4 <alias>kotlin</alias>
5 <filename>*.kt</filename>
6 <mime_type>text/x-kotlin</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="string">
11 <rule pattern="\\[tbnr&#39;&#34;\\\$]">
12 <token type="LiteralStringEscape"/>
13 </rule>
14 <rule pattern="\\u[0-9a-fA-F]{4}">
15 <token type="LiteralStringEscape"/>
16 </rule>
17 <rule pattern="&#34;">
18 <token type="LiteralStringDouble"/>
19 <pop depth="1"/>
20 </rule>
21 <rule>
22 <include state="string-interpol"/>
23 </rule>
24 <rule pattern="[^\n\\&#34;$]+">
25 <token type="LiteralStringDouble"/>
26 </rule>
27 <rule pattern="\$">
28 <token type="LiteralStringDouble"/>
29 </rule>
30 </state>
31 <state name="package">
32 <rule pattern="\S+">
33 <token type="NameNamespace"/>
34 <pop depth="1"/>
35 </rule>
36 </state>
37 <state name="class">
38 <rule pattern="\x60[^\x60]+?\x60">
39 <token type="NameClass"/>
40 <pop depth="1"/>
41 </rule>
42 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
43 <token type="NameClass"/>
44 <pop depth="1"/>
45 </rule>
46 </state>
47 <state name="property">
48 <rule pattern="\x60[^\x60]+?\x60">
49 <token type="NameProperty"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
53 <token type="NameProperty"/>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="string-interpol">
58 <rule pattern="\$(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
59 <token type="LiteralStringInterpol"/>
60 </rule>
61 <rule pattern="\${[^}\n]*}">
62 <token type="LiteralStringInterpol"/>
63 </rule>
64 </state>
65 <state name="generics-specification">
66 <rule pattern="&lt;">
67 <token type="Punctuation"/>
68 <push state="generics-specification"/>
69 </rule>
70 <rule pattern="&gt;">
71 <token type="Punctuation"/>
72 <pop depth="1"/>
73 </rule>
74 <rule pattern="[,:*?]">
75 <token type="Punctuation"/>
76 </rule>
77 <rule pattern="(in|out|reified)">
78 <token type="Keyword"/>
79 </rule>
80 <rule pattern="\x60[^\x60]+?\x60">
81 <token type="NameClass"/>
82 </rule>
83 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
84 <token type="NameClass"/>
85 </rule>
86 <rule pattern="\s+">
87 <token type="Text"/>
88 </rule>
89 </state>
90 <state name="root">
91 <rule pattern="^\s*\[.*?\]">
92 <token type="NameAttribute"/>
93 </rule>
94 <rule pattern="[^\S\n]+">
95 <token type="Text"/>
96 </rule>
97 <rule pattern="\\\n">
98 <token type="Text"/>
99 </rule>
100 <rule pattern="//[^\n]*\n?">
101 <token type="CommentSingle"/>
102 </rule>
103 <rule pattern="/[*].*?[*]/">
104 <token type="CommentMultiline"/>
105 </rule>
106 <rule pattern="\n">
107 <token type="Text"/>
108 </rule>
109 <rule pattern="!==|!in|!is|===">
110 <token type="Operator"/>
111 </rule>
112 <rule pattern="%=|&amp;&amp;|\*=|\+\+|\+=|--|-=|-&gt;|\.\.|\/=|::|&lt;=|==|&gt;=|!!|!=|\|\||\?[:.]">
113 <token type="Operator"/>
114 </rule>
115 <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;\/?-]">
116 <token type="Punctuation"/>
117 </rule>
118 <rule pattern="[{}]">
119 <token type="Punctuation"/>
120 </rule>
121 <rule pattern="&#34;&#34;&#34;">
122 <token type="LiteralString"/>
123 <push state="rawstring"/>
124 </rule>
125 <rule pattern="&#34;">
126 <token type="LiteralStringDouble"/>
127 <push state="string"/>
128 </rule>
129 <rule pattern="(&#39;)(\\u[0-9a-fA-F]{4})(&#39;)">
130 <bygroups>
131 <token type="LiteralStringChar"/>
132 <token type="LiteralStringEscape"/>
133 <token type="LiteralStringChar"/>
134 </bygroups>
135 </rule>
136 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
137 <token type="LiteralStringChar"/>
138 </rule>
139 <rule pattern="0[xX][0-9a-fA-F]+[Uu]?[Ll]?|[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?[fF]?[Uu]?[Ll]?">
140 <token type="LiteralNumber"/>
141 </rule>
142 <rule pattern="(companion)(\s+)(object)">
143 <bygroups>
144 <token type="Keyword"/>
145 <token type="Text"/>
146 <token type="Keyword"/>
147 </bygroups>
148 </rule>
149 <rule pattern="(class|interface|object)(\s+)">
150 <bygroups>
151 <token type="Keyword"/>
152 <token type="Text"/>
153 </bygroups>
154 <push state="class"/>
155 </rule>
156 <rule pattern="(package|import)(\s+)">
157 <bygroups>
158 <token type="Keyword"/>
159 <token type="Text"/>
160 </bygroups>
161 <push state="package"/>
162 </rule>
163 <rule pattern="(val|var)(\s+)">
164 <bygroups>
165 <token type="Keyword"/>
166 <token type="Text"/>
167 </bygroups>
168 <push state="property"/>
169 </rule>
170 <rule pattern="(fun)(\s+)">
171 <bygroups>
172 <token type="Keyword"/>
173 <token type="Text"/>
174 </bygroups>
175 <push state="function"/>
176 </rule>
177 <rule pattern="(abstract|actual|annotation|as|as\?|break|by|catch|class|companion|const|constructor|continue|crossinline|data|delegate|do|dynamic|else|enum|expect|external|false|field|file|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|it|lateinit|noinline|null|object|open|operator|out|override|package|param|private|property|protected|public|receiver|reified|return|sealed|set|setparam|super|suspend|tailrec|this|throw|true|try|typealias|typeof|val|value|var|vararg|when|where|while)\b">
178 <token type="Keyword"/>
179 </rule>
180 <rule pattern="@(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
181 <token type="NameDecorator"/>
182 </rule>
183 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
184 <token type="Name"/>
185 </rule>
186 </state>
187 <state name="function">
188 <rule pattern="&lt;">
189 <token type="Punctuation"/>
190 <push state="generics-specification"/>
191 </rule>
192 <rule pattern="\x60[^\x60]+?\x60">
193 <token type="NameFunction"/>
194 <pop depth="1"/>
195 </rule>
196 <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)">
197 <token type="NameFunction"/>
198 <pop depth="1"/>
199 </rule>
200 <rule pattern="\s+">
201 <token type="Text"/>
202 </rule>
203 </state>
204 <state name="rawstring">
205 <rule pattern="&#34;&#34;&#34;">
206 <token type="LiteralString"/>
207 <pop depth="1"/>
208 </rule>
209 <rule pattern="(?:[^$&#34;]+|\&#34;{1,2}[^&#34;])+">
210 <token type="LiteralString"/>
211 </rule>
212 <rule>
213 <include state="string-interpol"/>
214 </rule>
215 <rule pattern="\$">
216 <token type="LiteralString"/>
217 </rule>
218 </state>
219 </rules>
220</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml
new file mode 100644
index 0000000..1319e5c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lighttpd.xml
@@ -0,0 +1,42 @@
1<lexer>
2 <config>
3 <name>Lighttpd configuration file</name>
4 <alias>lighty</alias>
5 <alias>lighttpd</alias>
6 <mime_type>text/x-lighttpd-conf</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="#.*\n">
11 <token type="CommentSingle"/>
12 </rule>
13 <rule pattern="/\S*">
14 <token type="Name"/>
15 </rule>
16 <rule pattern="[a-zA-Z._-]+">
17 <token type="Keyword"/>
18 </rule>
19 <rule pattern="\d+\.\d+\.\d+\.\d+(?:/\d+)?">
20 <token type="LiteralNumber"/>
21 </rule>
22 <rule pattern="[0-9]+">
23 <token type="LiteralNumber"/>
24 </rule>
25 <rule pattern="=&gt;|=~|\+=|==|=|\+">
26 <token type="Operator"/>
27 </rule>
28 <rule pattern="\$[A-Z]+">
29 <token type="NameBuiltin"/>
30 </rule>
31 <rule pattern="[(){}\[\],]">
32 <token type="Punctuation"/>
33 </rule>
34 <rule pattern="&#34;([^&#34;\\]*(?:\\.[^&#34;\\]*)*)&#34;">
35 <token type="LiteralStringDouble"/>
36 </rule>
37 <rule pattern="\s+">
38 <token type="Text"/>
39 </rule>
40 </state>
41 </rules>
42</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml
new file mode 100644
index 0000000..f24f152
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/llvm.xml
@@ -0,0 +1,73 @@
1<lexer>
2 <config>
3 <name>LLVM</name>
4 <alias>llvm</alias>
5 <filename>*.ll</filename>
6 <mime_type>text/x-llvm</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule>
11 <include state="whitespace"/>
12 </rule>
13 <rule pattern="([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)\s*:">
14 <token type="NameLabel"/>
15 </rule>
16 <rule>
17 <include state="keyword"/>
18 </rule>
19 <rule pattern="%([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
20 <token type="NameVariable"/>
21 </rule>
22 <rule pattern="@([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
23 <token type="NameVariableGlobal"/>
24 </rule>
25 <rule pattern="%\d+">
26 <token type="NameVariableAnonymous"/>
27 </rule>
28 <rule pattern="@\d+">
29 <token type="NameVariableGlobal"/>
30 </rule>
31 <rule pattern="#\d+">
32 <token type="NameVariableGlobal"/>
33 </rule>
34 <rule pattern="!([-a-zA-Z$._][\w\-$.]*|&#34;[^&#34;]*?&#34;)">
35 <token type="NameVariable"/>
36 </rule>
37 <rule pattern="!\d+">
38 <token type="NameVariableAnonymous"/>
39 </rule>
40 <rule pattern="c?&#34;[^&#34;]*?&#34;">
41 <token type="LiteralString"/>
42 </rule>
43 <rule pattern="0[xX][a-fA-F0-9]+">
44 <token type="LiteralNumber"/>
45 </rule>
46 <rule pattern="-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?">
47 <token type="LiteralNumber"/>
48 </rule>
49 <rule pattern="[=&lt;&gt;{}\[\]()*.,!]|x\b">
50 <token type="Punctuation"/>
51 </rule>
52 </state>
53 <state name="whitespace">
54 <rule pattern="(\n|\s)+">
55 <token type="Text"/>
56 </rule>
57 <rule pattern=";.*?\n">
58 <token type="Comment"/>
59 </rule>
60 </state>
61 <state name="keyword">
62 <rule pattern="(inaccessiblemem_or_argmemonly|dereferenceable_or_null|externally_initialized|available_externally|linker_private_weak|inaccessiblememonly|local_unnamed_addr|sanitize_address|x86_vectorcallcc|noimplicitfloat|sanitize_thread|source_filename|sanitize_memory|preserve_mostcc|dereferenceable|arm_aapcs_vfpcc|zeroinitializer|extractelement|linker_private|cxx_fast_tlscc|x86_64_win64cc|intel_ocl_bicc|x86_fastcallcc|preserve_allcc|x86_thiscallcc|x86_stdcallcc|amdgpu_kernel|x86_64_sysvcc|addrspacecast|getelementptr|returns_twice|insertelement|shufflevector|msp430_intrcc|extractvalue|linkonce_odr|inteldialect|alwaysinline|blockaddress|noduplicates|thread_local|singlethread|localdynamic|unnamed_addr|avr_signalcc|unreachable|personality|arm_aapcscc|webkit_jscc|catchswitch|initialexec|insertvalue|noduplicate|nonlazybind|extern_weak|spir_kernel|attributes|sideeffect|cleanuppad|cleanupret|inlinehint|convergent|argmemonly|exactmatch|datalayout|landingpad|arm_apcscc|indirectbr|swifterror|ptx_device|ptx_kernel|x86_intrcc|avr_intrcc|alignstack|norecurse|amdgpu_vs|writeonly|localexec|amdgpu_ps|monotonic|amdgpu_gs|amdgpu_cs|allocsize|atomicrmw|swiftself|unordered|sspstrong|nocapture|addrspace|getresult|safestack|appending|noredzone|dllimport|dllexport|nobuiltin|jumptable|protected|spir_func|inbounds|musttail|external|volatile|inalloca|prologue|hhvm_ccc|noinline|readonly|readnone|linkonce|internal|catchret|samesize|returned|ptrtoint|inttoptr|noreturn|constant|nounwind|catchpad|anyregcc|weak_odr|distinct|release|optnone|uwtable|declare|optsize|swiftcc|noalias|private|minsize|default|fptrunc|zeroext|bitcast|nonnull|acq_rel|acquire|signext|builtin|cmpxchg|cleanup|section|largest|deplibs|seq_cst|common|hhvmcc|fptosi|opaque|triple|fptoui|target|filter|comdat|sitofp|module|switch|prefix|fastcc|coldcc|atomic|va_arg|notail|hidden|caller|global|invoke|define|sspreq|within|unwind|alloca|malloc|resume|select|uitofp|store|trunc|naked|byval|fence|fpext|begin|alias|exact|ghccc|ifunc|catch|undef|false|inreg|align|xchg|none|type|sext|call|null|cold|fcmp|icmp|tail|srem|free|load|nand|ashr|lshr|nnan|from|nest|frem|true|sret|urem|fdiv|zext|sdiv|udiv|ninf|arcp|fmul|fast|umax|fsub|umin|weak|fadd|ret|oeq|asm|add|dbg|sub|ccc|one|mul|olt|any|uge|nsz|ule|shl|ogt|ssp|and|sgt|nsw|nuw|min|max|sle|xor|sge|ult|phi|end|ole|une|ueq|uno|ord|oge|slt|ugt|eq|ne|to|gc|cc|or|br|c|x)\b">
63 <token type="Keyword"/>
64 </rule>
65 <rule pattern="(ppc_fp128|metadata|x86_fp80|double|label|fp128|float|token|void|half)">
66 <token type="KeywordType"/>
67 </rule>
68 <rule pattern="i[1-9]\d*">
69 <token type="Keyword"/>
70 </rule>
71 </state>
72 </rules>
73</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml
new file mode 100644
index 0000000..903d458
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/lua.xml
@@ -0,0 +1,158 @@
1<lexer>
2 <config>
3 <name>Lua</name>
4 <alias>lua</alias>
5 <filename>*.lua</filename>
6 <filename>*.wlua</filename>
7 <mime_type>text/x-lua</mime_type>
8 <mime_type>application/x-lua</mime_type>
9 </config>
10 <rules>
11 <state name="funcname">
12 <rule>
13 <include state="ws"/>
14 </rule>
15 <rule pattern="[.:]">
16 <token type="Punctuation"/>
17 </rule>
18 <rule pattern="(?:[^\W\d]\w*)(?=(?:(?:--\[(=*)\[[\w\W]*?\](\2)\])|(?:--.*$)|(?:\s+))*[.:])">
19 <token type="NameClass"/>
20 </rule>
21 <rule pattern="(?:[^\W\d]\w*)">
22 <token type="NameFunction"/>
23 <pop depth="1"/>
24 </rule>
25 <rule pattern="\(">
26 <token type="Punctuation"/>
27 <pop depth="1"/>
28 </rule>
29 </state>
30 <state name="label">
31 <rule>
32 <include state="ws"/>
33 </rule>
34 <rule pattern="::">
35 <token type="Punctuation"/>
36 <pop depth="1"/>
37 </rule>
38 <rule pattern="(?:[^\W\d]\w*)">
39 <token type="NameLabel"/>
40 </rule>
41 </state>
42 <state name="dqs">
43 <rule pattern="&#34;">
44 <token type="LiteralStringDouble"/>
45 <pop depth="1"/>
46 </rule>
47 <rule pattern="[^\\&#34;]+">
48 <token type="LiteralStringDouble"/>
49 </rule>
50 </state>
51 <state name="root">
52 <rule pattern="#!.*">
53 <token type="CommentPreproc"/>
54 </rule>
55 <rule>
56 <push state="base"/>
57 </rule>
58 </state>
59 <state name="ws">
60 <rule pattern="(?:--\[(=*)\[[\w\W]*?\](\1)\])">
61 <token type="CommentMultiline"/>
62 </rule>
63 <rule pattern="(?:--.*$)">
64 <token type="CommentSingle"/>
65 </rule>
66 <rule pattern="(?:\s+)">
67 <token type="Text"/>
68 </rule>
69 </state>
70 <state name="goto">
71 <rule>
72 <include state="ws"/>
73 </rule>
74 <rule pattern="(?:[^\W\d]\w*)">
75 <token type="NameLabel"/>
76 <pop depth="1"/>
77 </rule>
78 </state>
79 <state name="sqs">
80 <rule pattern="&#39;">
81 <token type="LiteralStringSingle"/>
82 <pop depth="1"/>
83 </rule>
84 <rule pattern="[^\\&#39;]+">
85 <token type="LiteralStringSingle"/>
86 </rule>
87 </state>
88 <state name="base">
89 <rule>
90 <include state="ws"/>
91 </rule>
92 <rule pattern="(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?">
93 <token type="LiteralNumberHex"/>
94 </rule>
95 <rule pattern="(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?">
96 <token type="LiteralNumberFloat"/>
97 </rule>
98 <rule pattern="(?i)\d+e[+-]?\d+">
99 <token type="LiteralNumberFloat"/>
100 </rule>
101 <rule pattern="\d+">
102 <token type="LiteralNumberInteger"/>
103 </rule>
104 <rule pattern="(?s)\[(=*)\[.*?\]\1\]">
105 <token type="LiteralString"/>
106 </rule>
107 <rule pattern="::">
108 <token type="Punctuation"/>
109 <push state="label"/>
110 </rule>
111 <rule pattern="\.{3}">
112 <token type="Punctuation"/>
113 </rule>
114 <rule pattern="[=&lt;&gt;|~&amp;+\-*/%#^]+|\.\.">
115 <token type="Operator"/>
116 </rule>
117 <rule pattern="[\[\]{}().,:;]">
118 <token type="Punctuation"/>
119 </rule>
120 <rule pattern="(and|or|not)\b">
121 <token type="OperatorWord"/>
122 </rule>
123 <rule pattern="(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b">
124 <token type="KeywordReserved"/>
125 </rule>
126 <rule pattern="goto\b">
127 <token type="KeywordReserved"/>
128 <push state="goto"/>
129 </rule>
130 <rule pattern="(local)\b">
131 <token type="KeywordDeclaration"/>
132 </rule>
133 <rule pattern="(true|false|nil)\b">
134 <token type="KeywordConstant"/>
135 </rule>
136 <rule pattern="(function)\b">
137 <token type="KeywordReserved"/>
138 <push state="funcname"/>
139 </rule>
140 <rule pattern="[A-Za-z_]\w*(\.[A-Za-z_]\w*)?">
141 <token type="Name"/>
142 </rule>
143 <rule pattern="&#39;">
144 <token type="LiteralStringSingle"/>
145 <combined state="stringescape" state="sqs"/>
146 </rule>
147 <rule pattern="&#34;">
148 <token type="LiteralStringDouble"/>
149 <combined state="stringescape" state="dqs"/>
150 </rule>
151 </state>
152 <state name="stringescape">
153 <rule pattern="\\([abfnrtv\\&#34;\&#39;]|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})">
154 <token type="LiteralStringEscape"/>
155 </rule>
156 </state>
157 </rules>
158</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml
new file mode 100644
index 0000000..5f57470
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mathematica.xml
@@ -0,0 +1,56 @@
1<lexer>
2 <config>
3 <name>Mathematica</name>
4 <alias>mathematica</alias>
5 <alias>mma</alias>
6 <alias>nb</alias>
7 <filename>*.nb</filename>
8 <filename>*.cdf</filename>
9 <filename>*.nbp</filename>
10 <filename>*.ma</filename>
11 <mime_type>application/mathematica</mime_type>
12 <mime_type>application/vnd.wolfram.mathematica</mime_type>
13 <mime_type>application/vnd.wolfram.mathematica.package</mime_type>
14 <mime_type>application/vnd.wolfram.cdf</mime_type>
15 </config>
16 <rules>
17 <state name="root">
18 <rule pattern="(?s)\(\*.*?\*\)">
19 <token type="Comment"/>
20 </rule>
21 <rule pattern="([a-zA-Z]+[A-Za-z0-9]*`)">
22 <token type="NameNamespace"/>
23 </rule>
24 <rule pattern="([A-Za-z0-9]*_+[A-Za-z0-9]*)">
25 <token type="NameVariable"/>
26 </rule>
27 <rule pattern="#\d*">
28 <token type="NameVariable"/>
29 </rule>
30 <rule pattern="([a-zA-Z]+[a-zA-Z0-9]*)">
31 <token type="Name"/>
32 </rule>
33 <rule pattern="-?\d+\.\d*">
34 <token type="LiteralNumberFloat"/>
35 </rule>
36 <rule pattern="-?\d*\.\d+">
37 <token type="LiteralNumberFloat"/>
38 </rule>
39 <rule pattern="-?\d+">
40 <token type="LiteralNumberInteger"/>
41 </rule>
42 <rule pattern="(!===|@@@|===|/;|:=|-&gt;|:&gt;|/\.|=\.|~~|&lt;=|@@|/@|&amp;&amp;|\|\||//|&lt;&gt;|;;|&gt;=|-|@|!|\^|/|\*|\?|\+|&amp;|&lt;|&gt;|=|\|)">
43 <token type="Operator"/>
44 </rule>
45 <rule pattern="(,|;|\(|\)|\[|\]|\{|\})">
46 <token type="Punctuation"/>
47 </rule>
48 <rule pattern="&#34;.*?&#34;">
49 <token type="LiteralString"/>
50 </rule>
51 <rule pattern="\s+">
52 <token type="TextWhitespace"/>
53 </rule>
54 </state>
55 </rules>
56</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml
new file mode 100644
index 0000000..ebb4e2c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/matlab.xml
@@ -0,0 +1,114 @@
1<lexer>
2 <config>
3 <name>Matlab</name>
4 <alias>matlab</alias>
5 <filename>*.m</filename>
6 <mime_type>text/matlab</mime_type>
7 </config>
8 <rules>
9 <state name="blockcomment">
10 <rule pattern="^\s*%\}">
11 <token type="CommentMultiline"/>
12 <pop depth="1"/>
13 </rule>
14 <rule pattern="^.*\n">
15 <token type="CommentMultiline"/>
16 </rule>
17 <rule pattern=".">
18 <token type="CommentMultiline"/>
19 </rule>
20 </state>
21 <state name="deffunc">
22 <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
23 <bygroups>
24 <token type="TextWhitespace"/>
25 <token type="Text"/>
26 <token type="TextWhitespace"/>
27 <token type="Punctuation"/>
28 <token type="TextWhitespace"/>
29 <token type="NameFunction"/>
30 <token type="Punctuation"/>
31 <token type="Text"/>
32 <token type="Punctuation"/>
33 <token type="TextWhitespace"/>
34 </bygroups>
35 <pop depth="1"/>
36 </rule>
37 <rule pattern="(\s*)([a-zA-Z_]\w*)">
38 <bygroups>
39 <token type="Text"/>
40 <token type="NameFunction"/>
41 </bygroups>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="root">
46 <rule pattern="\n">
47 <token type="Text"/>
48 </rule>
49 <rule pattern="^!.*">
50 <token type="LiteralStringOther"/>
51 </rule>
52 <rule pattern="%\{\s*\n">
53 <token type="CommentMultiline"/>
54 <push state="blockcomment"/>
55 </rule>
56 <rule pattern="%.*$">
57 <token type="Comment"/>
58 </rule>
59 <rule pattern="^\s*function">
60 <token type="Keyword"/>
61 <push state="deffunc"/>
62 </rule>
63 <rule pattern="(properties|persistent|enumerated|otherwise|continue|function|classdef|methods|elseif|events|switch|return|global|parfor|catch|break|while|else|spmd|case|try|end|for|if)\b">
64 <token type="Keyword"/>
65 </rule>
66 <rule pattern="(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">
67 <token type="NameBuiltin"/>
68 </rule>
69 <rule pattern="\.\.\..*$">
70 <token type="Comment"/>
71 </rule>
72 <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
73 <token type="Operator"/>
74 </rule>
75 <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
76 <token type="Operator"/>
77 </rule>
78 <rule pattern="\[|\]|\(|\)|\{|\}|:|@|\.|,">
79 <token type="Punctuation"/>
80 </rule>
81 <rule pattern="=|:|;">
82 <token type="Punctuation"/>
83 </rule>
84 <rule pattern="(?&lt;=[\w)\].])\&#39;+">
85 <token type="Operator"/>
86 </rule>
87 <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
88 <token type="LiteralNumberFloat"/>
89 </rule>
90 <rule pattern="\d+[eEf][+-]?[0-9]+">
91 <token type="LiteralNumberFloat"/>
92 </rule>
93 <rule pattern="\d+">
94 <token type="LiteralNumberInteger"/>
95 </rule>
96 <rule pattern="(?&lt;![\w)\].])\&#39;">
97 <token type="LiteralString"/>
98 <push state="string"/>
99 </rule>
100 <rule pattern="[a-zA-Z_]\w*">
101 <token type="Name"/>
102 </rule>
103 <rule pattern=".">
104 <token type="Text"/>
105 </rule>
106 </state>
107 <state name="string">
108 <rule pattern="[^\&#39;]*\&#39;">
109 <token type="LiteralString"/>
110 <pop depth="1"/>
111 </rule>
112 </state>
113 </rules>
114</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml
new file mode 100644
index 0000000..b1ff183
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mcfunction.xml
@@ -0,0 +1,182 @@
1<lexer>
2 <config>
3 <name>mcfunction</name>
4 <alias>mcfunction</alias>
5 <filename>*.mcfunction</filename>
6 <dot_all>true</dot_all>
7 <not_multiline>true</not_multiline>
8 </config>
9 <rules>
10 <state name="nbtobjectvalue">
11 <rule pattern="(&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|[a-zA-Z0-9_]+)">
12 <token type="NameTag"/>
13 <push state="nbtobjectattribute"/>
14 </rule>
15 <rule pattern="\}">
16 <token type="Punctuation"/>
17 <pop depth="1"/>
18 </rule>
19 </state>
20 <state name="nbtarrayvalue">
21 <rule>
22 <include state="nbtvalue"/>
23 </rule>
24 <rule pattern=",">
25 <token type="Punctuation"/>
26 </rule>
27 <rule pattern="\]">
28 <token type="Punctuation"/>
29 <pop depth="1"/>
30 </rule>
31 </state>
32 <state name="nbtvalue">
33 <rule>
34 <include state="simplevalue"/>
35 </rule>
36 <rule pattern="\{">
37 <token type="Punctuation"/>
38 <push state="nbtobjectvalue"/>
39 </rule>
40 <rule pattern="\[">
41 <token type="Punctuation"/>
42 <push state="nbtarrayvalue"/>
43 </rule>
44 </state>
45 <state name="argumentvalue">
46 <rule>
47 <include state="simplevalue"/>
48 </rule>
49 <rule pattern=",">
50 <token type="Punctuation"/>
51 <pop depth="1"/>
52 </rule>
53 <rule pattern="[}\]]">
54 <token type="Punctuation"/>
55 <pop depth="2"/>
56 </rule>
57 </state>
58 <state name="argumentlist">
59 <rule pattern="(nbt)(={)">
60 <bygroups>
61 <token type="NameAttribute"/>
62 <token type="Punctuation"/>
63 </bygroups>
64 <push state="nbtobjectvalue"/>
65 </rule>
66 <rule pattern="([A-Za-z0-9/_!]+)(={)">
67 <bygroups>
68 <token type="NameAttribute"/>
69 <token type="Punctuation"/>
70 </bygroups>
71 <push state="argumentlist"/>
72 </rule>
73 <rule pattern="([A-Za-z0-9/_!]+)(=)">
74 <bygroups>
75 <token type="NameAttribute"/>
76 <token type="Punctuation"/>
77 </bygroups>
78 <push state="argumentvalue"/>
79 </rule>
80 <rule>
81 <include state="simplevalue"/>
82 </rule>
83 <rule pattern=",">
84 <token type="Punctuation"/>
85 </rule>
86 <rule pattern="[}\]]">
87 <token type="Punctuation"/>
88 <pop depth="1"/>
89 </rule>
90 </state>
91 <state name="root">
92 <rule pattern="#.*?\n">
93 <token type="CommentSingle"/>
94 </rule>
95 <rule pattern="/?(geteduclientinfo|clearspawnpoint|defaultgamemode|transferserver|toggledownfall|immutableworld|detectredstone|setidletimeout|playanimation|classroommode|spreadplayers|testforblocks|setmaxplayers|setworldspawn|testforblock|worldbuilder|createagent|worldborder|camerashake|advancement|raytracefog|locatebiome|tickingarea|replaceitem|attributes|spawnpoint|difficulty|experience|scoreboard|whitelist|structure|playsound|stopsound|forceload|spectate|gamerule|function|schedule|wsserver|teleport|position|save-off|particle|setblock|datapack|mobevent|transfer|gamemode|save-all|bossbar|enchant|trigger|collect|execute|weather|teammsg|tpagent|banlist|dropall|publish|tellraw|testfor|save-on|destroy|ability|locate|summon|remove|effect|reload|ban-ip|recipe|pardon|detect|music|clear|clone|event|mixer|debug|title|ride|stop|list|turn|data|team|kick|loot|tell|help|give|flog|fill|move|time|seed|kill|save|item|deop|code|tag|ban|msg|say|tp|me|op|xp|w)\b">
96 <token type="KeywordReserved"/>
97 </rule>
98 <rule pattern="(@p|@r|@a|@e|@s|@c|@v)">
99 <token type="KeywordConstant"/>
100 </rule>
101 <rule pattern="\[">
102 <token type="Punctuation"/>
103 <push state="argumentlist"/>
104 </rule>
105 <rule pattern="{">
106 <token type="Punctuation"/>
107 <push state="nbtobjectvalue"/>
108 </rule>
109 <rule pattern="~">
110 <token type="NameBuiltin"/>
111 </rule>
112 <rule pattern="([a-zA-Z_]+:)?[a-zA-Z_]+\b">
113 <token type="Text"/>
114 </rule>
115 <rule pattern="([a-z]+)(\.)([0-9]+)\b">
116 <bygroups>
117 <token type="Text"/>
118 <token type="Punctuation"/>
119 <token type="LiteralNumber"/>
120 </bygroups>
121 </rule>
122 <rule pattern="([&lt;&gt;=]|&lt;=|&gt;=)">
123 <token type="Punctuation"/>
124 </rule>
125 <rule>
126 <include state="simplevalue"/>
127 </rule>
128 <rule pattern="\s+">
129 <token type="TextWhitespace"/>
130 </rule>
131 </state>
132 <state name="simplevalue">
133 <rule pattern="(true|false)">
134 <token type="KeywordConstant"/>
135 </rule>
136 <rule pattern="[01]b">
137 <token type="LiteralNumber"/>
138 </rule>
139 <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
140 <token type="LiteralNumberFloat"/>
141 </rule>
142 <rule pattern="(-?\d+)(\.\.)(-?\d+)">
143 <bygroups>
144 <token type="LiteralNumberInteger"/>
145 <token type="Punctuation"/>
146 <token type="LiteralNumberInteger"/>
147 </bygroups>
148 </rule>
149 <rule pattern="-?(0|[1-9]\d*)">
150 <token type="LiteralNumberInteger"/>
151 </rule>
152 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
153 <token type="LiteralStringDouble"/>
154 </rule>
155 <rule pattern="&#39;[^&#39;]+&#39;">
156 <token type="LiteralStringSingle"/>
157 </rule>
158 <rule pattern="([!#]?)(\w+)">
159 <bygroups>
160 <token type="Punctuation"/>
161 <token type="Text"/>
162 </bygroups>
163 </rule>
164 </state>
165 <state name="nbtobjectattribute">
166 <rule>
167 <include state="nbtvalue"/>
168 </rule>
169 <rule pattern=":">
170 <token type="Punctuation"/>
171 </rule>
172 <rule pattern=",">
173 <token type="Punctuation"/>
174 <pop depth="1"/>
175 </rule>
176 <rule pattern="\}">
177 <token type="Punctuation"/>
178 <pop depth="2"/>
179 </rule>
180 </state>
181 </rules>
182</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml
new file mode 100644
index 0000000..130047d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/meson.xml
@@ -0,0 +1,85 @@
1<lexer>
2 <config>
3 <name>Meson</name>
4 <alias>meson</alias>
5 <alias>meson.build</alias>
6 <filename>meson.build</filename>
7 <filename>meson_options.txt</filename>
8 <mime_type>text/x-meson</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="#.*?$">
13 <token type="Comment"/>
14 </rule>
15 <rule pattern="&#39;&#39;&#39;.*&#39;&#39;&#39;">
16 <token type="LiteralStringSingle"/>
17 </rule>
18 <rule pattern="[1-9][0-9]*">
19 <token type="LiteralNumberInteger"/>
20 </rule>
21 <rule pattern="0o[0-7]+">
22 <token type="LiteralNumberOct"/>
23 </rule>
24 <rule pattern="0x[a-fA-F0-9]+">
25 <token type="LiteralNumberHex"/>
26 </rule>
27 <rule>
28 <include state="string"/>
29 </rule>
30 <rule>
31 <include state="keywords"/>
32 </rule>
33 <rule>
34 <include state="expr"/>
35 </rule>
36 <rule pattern="[a-zA-Z_][a-zA-Z_0-9]*">
37 <token type="Name"/>
38 </rule>
39 <rule pattern="\s+">
40 <token type="TextWhitespace"/>
41 </rule>
42 </state>
43 <state name="string">
44 <rule pattern="[&#39;]{3}([&#39;]{0,2}([^\\&#39;]|\\(.|\n)))*[&#39;]{3}">
45 <token type="LiteralString"/>
46 </rule>
47 <rule pattern="&#39;.*?(?&lt;!\\)(\\\\)*?&#39;">
48 <token type="LiteralString"/>
49 </rule>
50 </state>
51 <state name="keywords">
52 <rule pattern="(endforeach|continue|foreach|break|endif|else|elif|if)\b">
53 <token type="Keyword"/>
54 </rule>
55 </state>
56 <state name="expr">
57 <rule pattern="(in|and|or|not)\b">
58 <token type="OperatorWord"/>
59 </rule>
60 <rule pattern="(\*=|/=|%=|\+]=|-=|==|!=|\+|-|=)">
61 <token type="Operator"/>
62 </rule>
63 <rule pattern="[\[\]{}:().,?]">
64 <token type="Punctuation"/>
65 </rule>
66 <rule pattern="(false|true)\b">
67 <token type="KeywordConstant"/>
68 </rule>
69 <rule>
70 <include state="builtins"/>
71 </rule>
72 <rule pattern="(target_machine|build_machine|host_machine|meson)\b">
73 <token type="NameVariableMagic"/>
74 </rule>
75 </state>
76 <state name="builtins">
77 <rule pattern="(?&lt;!\.)(add_project_link_arguments|add_global_link_arguments|add_project_arguments|add_global_arguments|include_directories|configuration_data|declare_dependency|install_headers|both_libraries|install_subdir|add_test_setup|configure_file|static_library|shared_library|custom_target|add_languages|shared_module|set_variable|get_variable|find_library|find_program|build_target|install_data|environment|is_disabler|run_command|subdir_done|install_man|is_variable|subproject|dependency|join_paths|get_option|executable|generator|benchmark|disabler|project|message|library|summary|vcs_tag|warning|assert|subdir|range|files|error|test|jar)\b">
78 <token type="NameBuiltin"/>
79 </rule>
80 <rule pattern="(?&lt;!\.)import\b">
81 <token type="NameNamespace"/>
82 </rule>
83 </state>
84 </rules>
85</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml
new file mode 100644
index 0000000..62d04ba
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/metal.xml
@@ -0,0 +1,270 @@
1<lexer>
2 <config>
3 <name>Metal</name>
4 <alias>metal</alias>
5 <filename>*.metal</filename>
6 <mime_type>text/x-metal</mime_type>
7 <ensure_nl>true</ensure_nl>
8 </config>
9 <rules>
10 <state name="function">
11 <rule>
12 <include state="whitespace"/>
13 </rule>
14 <rule>
15 <include state="statements"/>
16 </rule>
17 <rule pattern=";">
18 <token type="Punctuation"/>
19 </rule>
20 <rule pattern="\{">
21 <token type="Punctuation"/>
22 <push/>
23 </rule>
24 <rule pattern="\}">
25 <token type="Punctuation"/>
26 <pop depth="1"/>
27 </rule>
28 </state>
29 <state name="macro">
30 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
31 <bygroups>
32 <token type="CommentPreproc"/>
33 <token type="Text"/>
34 <token type="CommentPreprocFile"/>
35 </bygroups>
36 </rule>
37 <rule pattern="[^/\n]+">
38 <token type="CommentPreproc"/>
39 </rule>
40 <rule pattern="/[*](.|\n)*?[*]/">
41 <token type="CommentMultiline"/>
42 </rule>
43 <rule pattern="//.*?\n">
44 <token type="CommentSingle"/>
45 <pop depth="1"/>
46 </rule>
47 <rule pattern="/">
48 <token type="CommentPreproc"/>
49 </rule>
50 <rule pattern="(?&lt;=\\)\n">
51 <token type="CommentPreproc"/>
52 </rule>
53 <rule pattern="\n">
54 <token type="CommentPreproc"/>
55 <pop depth="1"/>
56 </rule>
57 </state>
58 <state name="if0">
59 <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
60 <token type="CommentPreproc"/>
61 <push/>
62 </rule>
63 <rule pattern="^\s*#el(?:se|if).*\n">
64 <token type="CommentPreproc"/>
65 <pop depth="1"/>
66 </rule>
67 <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
68 <token type="CommentPreproc"/>
69 <pop depth="1"/>
70 </rule>
71 <rule pattern=".*?\n">
72 <token type="Comment"/>
73 </rule>
74 </state>
75 <state name="statements">
76 <rule pattern="(namespace|constexpr|operator|template|using|this)\b">
77 <token type="Keyword"/>
78 </rule>
79 <rule pattern="(enum)\b(\s+)(class)\b(\s*)">
80 <bygroups>
81 <token type="Keyword"/>
82 <token type="Text"/>
83 <token type="Keyword"/>
84 <token type="Text"/>
85 </bygroups>
86 <push state="classname"/>
87 </rule>
88 <rule pattern="(class|struct|enum|union)\b(\s*)">
89 <bygroups>
90 <token type="Keyword"/>
91 <token type="Text"/>
92 </bygroups>
93 <push state="classname"/>
94 </rule>
95 <rule pattern="\[\[.+\]\]">
96 <token type="NameAttribute"/>
97 </rule>
98 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
99 <token type="LiteralNumberFloat"/>
100 </rule>
101 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
102 <token type="LiteralNumberFloat"/>
103 </rule>
104 <rule pattern="0[xX]([0-9A-Fa-f](&#39;?[0-9A-Fa-f]+)*)[LlUu]*">
105 <token type="LiteralNumberHex"/>
106 </rule>
107 <rule pattern="0(&#39;?[0-7]+)+[LlUu]*">
108 <token type="LiteralNumberOct"/>
109 </rule>
110 <rule pattern="0[Bb][01](&#39;?[01]+)*[LlUu]*">
111 <token type="LiteralNumberBin"/>
112 </rule>
113 <rule pattern="[0-9](&#39;?[0-9]+)*[LlUu]*">
114 <token type="LiteralNumberInteger"/>
115 </rule>
116 <rule pattern="\*/">
117 <token type="Error"/>
118 </rule>
119 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
120 <token type="Operator"/>
121 </rule>
122 <rule pattern="[()\[\],.]">
123 <token type="Punctuation"/>
124 </rule>
125 <rule pattern="(continue|typedef|sizeof|extern|static|switch|struct|return|union|const|break|while|enum|else|case|for|do|if)\b">
126 <token type="Keyword"/>
127 </rule>
128 <rule pattern="(bool|float|half|long|ptrdiff_t|size_t|unsigned|u?char|u?int((8|16|32|64)_t)?|u?short)\b">
129 <token type="KeywordType"/>
130 </rule>
131 <rule pattern="(bool|float|half|u?(char|int|long|short))(2|3|4)\b">
132 <token type="KeywordType"/>
133 </rule>
134 <rule pattern="packed_(float|half|long|u?(char|int|short))(2|3|4)\b">
135 <token type="KeywordType"/>
136 </rule>
137 <rule pattern="(float|half)(2|3|4)x(2|3|4)\b">
138 <token type="KeywordType"/>
139 </rule>
140 <rule pattern="atomic_u?int\b">
141 <token type="KeywordType"/>
142 </rule>
143 <rule pattern="(rg?(8|16)(u|s)norm|rgba(8|16)(u|s)norm|srgba8unorm|rgb10a2|rg11b10f|rgb9e5)\b">
144 <token type="KeywordType"/>
145 </rule>
146 <rule pattern="(array|depth(2d|cube)(_array)?|depth2d_ms(_array)?|sampler|texture_buffer|texture(1|2)d(_array)?|texture2d_ms(_array)?|texture3d|texturecube(_array)?|uniform|visible_function_table)\b">
147 <token type="KeywordType"/>
148 </rule>
149 <rule pattern="(true|false|NULL)\b">
150 <token type="NameBuiltin"/>
151 </rule>
152 <rule pattern="(threadgroup_imageblock|threadgroup|constant|ray_data|device|thread)\b">
153 <token type="Keyword"/>
154 </rule>
155 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
156 <bygroups>
157 <token type="NameLabel"/>
158 <token type="Text"/>
159 <token type="Punctuation"/>
160 </bygroups>
161 </rule>
162 <rule pattern="[a-zA-Z_]\w*">
163 <token type="Name"/>
164 </rule>
165 </state>
166 <state name="root">
167 <rule>
168 <include state="whitespace"/>
169 </rule>
170 <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
171 <bygroups>
172 <token type="Keyword"/>
173 <usingself state="root"/>
174 <token type="NameFunction"/>
175 <usingself state="root"/>
176 <usingself state="root"/>
177 <token type="Punctuation"/>
178 </bygroups>
179 <push state="function"/>
180 </rule>
181 <rule pattern="(fragment|kernel|vertex)?((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
182 <bygroups>
183 <token type="Keyword"/>
184 <usingself state="root"/>
185 <token type="NameFunction"/>
186 <usingself state="root"/>
187 <usingself state="root"/>
188 <token type="Punctuation"/>
189 </bygroups>
190 </rule>
191 <rule>
192 <push state="statement"/>
193 </rule>
194 </state>
195 <state name="classname">
196 <rule pattern="(\[\[.+\]\])(\s*)">
197 <bygroups>
198 <token type="NameAttribute"/>
199 <token type="Text"/>
200 </bygroups>
201 </rule>
202 <rule pattern="[a-zA-Z_]\w*">
203 <token type="NameClass"/>
204 <pop depth="1"/>
205 </rule>
206 <rule pattern="\s*(?=[&gt;{])">
207 <token type="Text"/>
208 <pop depth="1"/>
209 </rule>
210 </state>
211 <state name="whitespace">
212 <rule pattern="^#if\s+0">
213 <token type="CommentPreproc"/>
214 <push state="if0"/>
215 </rule>
216 <rule pattern="^#">
217 <token type="CommentPreproc"/>
218 <push state="macro"/>
219 </rule>
220 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
221 <bygroups>
222 <usingself state="root"/>
223 <token type="CommentPreproc"/>
224 </bygroups>
225 <push state="if0"/>
226 </rule>
227 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
228 <bygroups>
229 <usingself state="root"/>
230 <token type="CommentPreproc"/>
231 </bygroups>
232 <push state="macro"/>
233 </rule>
234 <rule pattern="\n">
235 <token type="Text"/>
236 </rule>
237 <rule pattern="\s+">
238 <token type="Text"/>
239 </rule>
240 <rule pattern="\\\n">
241 <token type="Text"/>
242 </rule>
243 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
244 <token type="CommentSingle"/>
245 </rule>
246 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
247 <token type="CommentMultiline"/>
248 </rule>
249 <rule pattern="/(\\\n)?[*][\w\W]*">
250 <token type="CommentMultiline"/>
251 </rule>
252 </state>
253 <state name="statement">
254 <rule>
255 <include state="whitespace"/>
256 </rule>
257 <rule>
258 <include state="statements"/>
259 </rule>
260 <rule pattern="[{]">
261 <token type="Punctuation"/>
262 <push state="root"/>
263 </rule>
264 <rule pattern="[;}]">
265 <token type="Punctuation"/>
266 <pop depth="1"/>
267 </rule>
268 </state>
269 </rules>
270</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml
new file mode 100644
index 0000000..1ad6860
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/minizinc.xml
@@ -0,0 +1,82 @@
1<lexer>
2 <config>
3 <name>MiniZinc</name>
4 <alias>minizinc</alias>
5 <alias>MZN</alias>
6 <alias>mzn</alias>
7 <filename>*.mzn</filename>
8 <filename>*.dzn</filename>
9 <filename>*.fzn</filename>
10 <mime_type>text/minizinc</mime_type>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern="\n">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="\s+">
18 <token type="Text"/>
19 </rule>
20 <rule pattern="\\\n">
21 <token type="Text"/>
22 </rule>
23 <rule pattern="\%(.*?)\n">
24 <token type="CommentSingle"/>
25 </rule>
26 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
27 <token type="CommentMultiline"/>
28 </rule>
29 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="\b(annotation|constraint|predicate|minimize|function|maximize|satisfy|include|record|output|solve|test|list|type|ann|par|any|var|op|of)\b">
33 <token type="Keyword"/>
34 </rule>
35 <rule pattern="\b(string|tuple|float|array|bool|enum|int|set)\b">
36 <token type="KeywordType"/>
37 </rule>
38 <rule pattern="\b(forall|where|endif|then|else|for|if)\b">
39 <token type="Keyword"/>
40 </rule>
41 <rule pattern="\b(array_intersect|index_set_2of3|index_set_1of3|index_set_3of3|index_set_1of2|index_set_2of2|array_union|show_float|dom_array|int2float|set2array|index_set|dom_size|lb_array|is_fixed|ub_array|bool2int|show_int|array4d|array2d|array1d|array5d|array6d|array3d|product|length|assert|concat|trace|acosh|round|abort|log10|floor|sinh|tanh|atan|sqrt|asin|show|log2|card|ceil|cosh|join|pow|cos|max|log|exp|dom|sin|abs|fix|sum|tan|min|lb|ln|ub)\b">
42 <token type="NameBuiltin"/>
43 </rule>
44 <rule pattern="(not|&lt;-&gt;|-&gt;|&lt;-|\\/|xor|/\\)">
45 <token type="Operator"/>
46 </rule>
47 <rule pattern="(&lt;|&gt;|&lt;=|&gt;=|==|=|!=)">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="(\+|-|\*|/|div|mod)">
51 <token type="Operator"/>
52 </rule>
53 <rule pattern="\b(intersect|superset|symdiff|subset|union|diff|in)\b">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(\\|\.\.|\+\+)">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="[|()\[\]{},:;]">
60 <token type="Punctuation"/>
61 </rule>
62 <rule pattern="(true|false)\b">
63 <token type="KeywordConstant"/>
64 </rule>
65 <rule pattern="([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?">
66 <token type="LiteralNumber"/>
67 </rule>
68 <rule pattern="::\s*([^\W\d]\w*)(\s*\([^\)]*\))?">
69 <token type="NameDecorator"/>
70 </rule>
71 <rule pattern="\b([^\W\d]\w*)\b(\()">
72 <bygroups>
73 <token type="NameFunction"/>
74 <token type="Punctuation"/>
75 </bygroups>
76 </rule>
77 <rule pattern="[^\W\d]\w*">
78 <token type="NameOther"/>
79 </rule>
80 </state>
81 </rules>
82</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml
new file mode 100644
index 0000000..025c3dc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mlir.xml
@@ -0,0 +1,73 @@
1<lexer>
2 <config>
3 <name>MLIR</name>
4 <alias>mlir</alias>
5 <filename>*.mlir</filename>
6 <mime_type>text/x-mlir</mime_type>
7 </config>
8 <rules>
9 <state name="whitespace">
10 <rule pattern="(\n|\s)+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="//.*?\n">
14 <token type="Comment"/>
15 </rule>
16 </state>
17 <state name="keyword">
18 <rule pattern="(constant|return)">
19 <token type="KeywordType"/>
20 </rule>
21 <rule pattern="(memref|tensor|vector|func|loc)">
22 <token type="KeywordType"/>
23 </rule>
24 <rule pattern="bf16|f16|f32|f64|index">
25 <token type="Keyword"/>
26 </rule>
27 <rule pattern="i[1-9]\d*">
28 <token type="Keyword"/>
29 </rule>
30 </state>
31 <state name="root">
32 <rule>
33 <include state="whitespace"/>
34 </rule>
35 <rule pattern="c?&#34;[^&#34;]*?&#34;">
36 <token type="LiteralString"/>
37 </rule>
38 <rule pattern="\^([-a-zA-Z$._][\w\-$.0-9]*)\s*">
39 <token type="NameLabel"/>
40 </rule>
41 <rule pattern="([\w\d_$.]+)\s*=">
42 <token type="NameLabel"/>
43 </rule>
44 <rule>
45 <include state="keyword"/>
46 </rule>
47 <rule pattern="-&gt;">
48 <token type="Punctuation"/>
49 </rule>
50 <rule pattern="@([\w_][\w\d_$.]*)">
51 <token type="NameFunction"/>
52 </rule>
53 <rule pattern="[%#][\w\d_$.]+">
54 <token type="NameVariable"/>
55 </rule>
56 <rule pattern="([1-9?][\d?]*\s*x)+">
57 <token type="LiteralNumber"/>
58 </rule>
59 <rule pattern="0[xX][a-fA-F0-9]+">
60 <token type="LiteralNumber"/>
61 </rule>
62 <rule pattern="-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?">
63 <token type="LiteralNumber"/>
64 </rule>
65 <rule pattern="[=&lt;&gt;{}\[\]()*.,!:]|x\b">
66 <token type="Punctuation"/>
67 </rule>
68 <rule pattern="[\w\d]+">
69 <token type="Text"/>
70 </rule>
71 </state>
72 </rules>
73</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml
new file mode 100644
index 0000000..0bf37bc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/modula-2.xml
@@ -0,0 +1,245 @@
1<lexer>
2 <config>
3 <name>Modula-2</name>
4 <alias>modula2</alias>
5 <alias>m2</alias>
6 <filename>*.def</filename>
7 <filename>*.mod</filename>
8 <mime_type>text/x-modula2</mime_type>
9 <dot_all>true</dot_all>
10 </config>
11 <rules>
12 <state name="dialecttags">
13 <rule pattern="\(\*!m2pim\*\)">
14 <token type="CommentSpecial"/>
15 </rule>
16 <rule pattern="\(\*!m2iso\*\)">
17 <token type="CommentSpecial"/>
18 </rule>
19 <rule pattern="\(\*!m2r10\*\)">
20 <token type="CommentSpecial"/>
21 </rule>
22 <rule pattern="\(\*!objm2\*\)">
23 <token type="CommentSpecial"/>
24 </rule>
25 <rule pattern="\(\*!m2iso\+aglet\*\)">
26 <token type="CommentSpecial"/>
27 </rule>
28 <rule pattern="\(\*!m2pim\+gm2\*\)">
29 <token type="CommentSpecial"/>
30 </rule>
31 <rule pattern="\(\*!m2iso\+p1\*\)">
32 <token type="CommentSpecial"/>
33 </rule>
34 <rule pattern="\(\*!m2iso\+xds\*\)">
35 <token type="CommentSpecial"/>
36 </rule>
37 </state>
38 <state name="unigraph_operators">
39 <rule pattern="[+-]">
40 <token type="Operator"/>
41 </rule>
42 <rule pattern="[*/]">
43 <token type="Operator"/>
44 </rule>
45 <rule pattern="\\">
46 <token type="Operator"/>
47 </rule>
48 <rule pattern="[=#&lt;&gt;]">
49 <token type="Operator"/>
50 </rule>
51 <rule pattern="\^">
52 <token type="Operator"/>
53 </rule>
54 <rule pattern="@">
55 <token type="Operator"/>
56 </rule>
57 <rule pattern="&amp;">
58 <token type="Operator"/>
59 </rule>
60 <rule pattern="~">
61 <token type="Operator"/>
62 </rule>
63 <rule pattern="`">
64 <token type="Operator"/>
65 </rule>
66 </state>
67 <state name="string_literals">
68 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
69 <token type="LiteralString"/>
70 </rule>
71 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
72 <token type="LiteralString"/>
73 </rule>
74 </state>
75 <state name="identifiers">
76 <rule pattern="([a-zA-Z_$][\w$]*)">
77 <token type="Name"/>
78 </rule>
79 </state>
80 <state name="pragmas">
81 <rule pattern="&lt;\*.*?\*&gt;">
82 <token type="CommentPreproc"/>
83 </rule>
84 <rule pattern="\(\*\$.*?\*\)">
85 <token type="CommentPreproc"/>
86 </rule>
87 </state>
88 <state name="comments">
89 <rule pattern="^//.*?\n">
90 <token type="CommentSingle"/>
91 </rule>
92 <rule pattern="\(\*([^$].*?)\*\)">
93 <token type="CommentMultiline"/>
94 </rule>
95 <rule pattern="/\*(.*?)\*/">
96 <token type="CommentMultiline"/>
97 </rule>
98 </state>
99 <state name="whitespace">
100 <rule pattern="\n+">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="\s+">
104 <token type="Text"/>
105 </rule>
106 </state>
107 <state name="suffixed_number_literals">
108 <rule pattern="[0-7]+B">
109 <token type="LiteralNumberOct"/>
110 </rule>
111 <rule pattern="[0-7]+C">
112 <token type="LiteralNumberOct"/>
113 </rule>
114 <rule pattern="[0-9A-F]+H">
115 <token type="LiteralNumberHex"/>
116 </rule>
117 </state>
118 <state name="plain_number_literals">
119 <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*[eE][+-]?[0-9]+(\&#39;[0-9]+)*">
120 <token type="LiteralNumberFloat"/>
121 </rule>
122 <rule pattern="[0-9]+(\&#39;[0-9]+)*\.[0-9]+(\&#39;[0-9]+)*">
123 <token type="LiteralNumberFloat"/>
124 </rule>
125 <rule pattern="[0-9]+(\&#39;[0-9]+)*">
126 <token type="LiteralNumberInteger"/>
127 </rule>
128 </state>
129 <state name="digraph_punctuation">
130 <rule pattern="\.\.">
131 <token type="Punctuation"/>
132 </rule>
133 <rule pattern="&lt;&lt;">
134 <token type="Punctuation"/>
135 </rule>
136 <rule pattern="&gt;&gt;">
137 <token type="Punctuation"/>
138 </rule>
139 <rule pattern="-&gt;">
140 <token type="Punctuation"/>
141 </rule>
142 <rule pattern="\|#">
143 <token type="Punctuation"/>
144 </rule>
145 <rule pattern="##">
146 <token type="Punctuation"/>
147 </rule>
148 <rule pattern="\|\*">
149 <token type="Punctuation"/>
150 </rule>
151 </state>
152 <state name="unigraph_punctuation">
153 <rule pattern="[()\[\]{},.:;|]">
154 <token type="Punctuation"/>
155 </rule>
156 <rule pattern="!">
157 <token type="Punctuation"/>
158 </rule>
159 <rule pattern="\?">
160 <token type="Punctuation"/>
161 </rule>
162 </state>
163 <state name="root">
164 <rule>
165 <include state="whitespace"/>
166 </rule>
167 <rule>
168 <include state="dialecttags"/>
169 </rule>
170 <rule>
171 <include state="pragmas"/>
172 </rule>
173 <rule>
174 <include state="comments"/>
175 </rule>
176 <rule>
177 <include state="identifiers"/>
178 </rule>
179 <rule>
180 <include state="suffixed_number_literals"/>
181 </rule>
182 <rule>
183 <include state="prefixed_number_literals"/>
184 </rule>
185 <rule>
186 <include state="plain_number_literals"/>
187 </rule>
188 <rule>
189 <include state="string_literals"/>
190 </rule>
191 <rule>
192 <include state="digraph_punctuation"/>
193 </rule>
194 <rule>
195 <include state="digraph_operators"/>
196 </rule>
197 <rule>
198 <include state="unigraph_punctuation"/>
199 </rule>
200 <rule>
201 <include state="unigraph_operators"/>
202 </rule>
203 </state>
204 <state name="prefixed_number_literals">
205 <rule pattern="0b[01]+(\&#39;[01]+)*">
206 <token type="LiteralNumberBin"/>
207 </rule>
208 <rule pattern="0[ux][0-9A-F]+(\&#39;[0-9A-F]+)*">
209 <token type="LiteralNumberHex"/>
210 </rule>
211 </state>
212 <state name="digraph_operators">
213 <rule pattern="\*\.">
214 <token type="Operator"/>
215 </rule>
216 <rule pattern="\+&gt;">
217 <token type="Operator"/>
218 </rule>
219 <rule pattern="&lt;&gt;">
220 <token type="Operator"/>
221 </rule>
222 <rule pattern="&lt;=">
223 <token type="Operator"/>
224 </rule>
225 <rule pattern="&gt;=">
226 <token type="Operator"/>
227 </rule>
228 <rule pattern="==">
229 <token type="Operator"/>
230 </rule>
231 <rule pattern="::">
232 <token type="Operator"/>
233 </rule>
234 <rule pattern=":=">
235 <token type="Operator"/>
236 </rule>
237 <rule pattern="\+\+">
238 <token type="Operator"/>
239 </rule>
240 <rule pattern="--">
241 <token type="Operator"/>
242 </rule>
243 </state>
244 </rules>
245</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml
new file mode 100644
index 0000000..7445a63
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/monkeyc.xml
@@ -0,0 +1,153 @@
1<lexer>
2 <config>
3 <name>MonkeyC</name>
4 <alias>monkeyc</alias>
5 <filename>*.mc</filename>
6 <mime_type>text/x-monkeyc</mime_type>
7 </config>
8 <rules>
9 <state name="class">
10 <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(extends)(\s+)([a-zA-Z_][\w_\.]*))?">
11 <bygroups>
12 <token type="NameClass"/>
13 <token type="Text"/>
14 <token type="KeywordDeclaration"/>
15 <token type="Text"/>
16 <token type="NameClass"/>
17 </bygroups>
18 </rule>
19 <rule>
20 <pop depth="1"/>
21 </rule>
22 </state>
23 <state name="function">
24 <rule pattern="initialize">
25 <token type="NameFunctionMagic"/>
26 </rule>
27 <rule pattern="[a-zA-Z_][\w_\.]*">
28 <token type="NameFunction"/>
29 </rule>
30 <rule>
31 <pop depth="1"/>
32 </rule>
33 </state>
34 <state name="module">
35 <rule pattern="[a-zA-Z_][\w_\.]*">
36 <token type="NameNamespace"/>
37 </rule>
38 <rule>
39 <pop depth="1"/>
40 </rule>
41 </state>
42 <state name="root">
43 <rule pattern="[^\S\n]+">
44 <token type="Text"/>
45 </rule>
46 <rule pattern="\n">
47 <token type="Text"/>
48 </rule>
49 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
50 <token type="CommentSingle"/>
51 </rule>
52 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
53 <token type="CommentMultiline"/>
54 </rule>
55 <rule pattern="/(\\\n)?[*][\w\W]*">
56 <token type="CommentMultiline"/>
57 </rule>
58 <rule pattern=":[a-zA-Z_][\w_\.]*">
59 <token type="LiteralStringSymbol"/>
60 </rule>
61 <rule pattern="[{}\[\]\(\),;:\.]">
62 <token type="Punctuation"/>
63 </rule>
64 <rule pattern="[&amp;~\|\^!+\-*\/%=?]">
65 <token type="Operator"/>
66 </rule>
67 <rule pattern="=&gt;|[+-]=|&amp;&amp;|\|\||&gt;&gt;|&lt;&lt;|[&lt;&gt;]=?|[!=]=">
68 <token type="Operator"/>
69 </rule>
70 <rule pattern="\b(and|or|instanceof|has|extends|new)">
71 <token type="OperatorWord"/>
72 </rule>
73 <rule pattern="(false|null|true|NaN)\b">
74 <token type="KeywordConstant"/>
75 </rule>
76 <rule pattern="(using)((?:\s|\\\\s)+)">
77 <bygroups>
78 <token type="KeywordNamespace"/>
79 <token type="Text"/>
80 </bygroups>
81 <push state="import"/>
82 </rule>
83 <rule pattern="(class)((?:\s|\\\\s)+)">
84 <bygroups>
85 <token type="KeywordDeclaration"/>
86 <token type="Text"/>
87 </bygroups>
88 <push state="class"/>
89 </rule>
90 <rule pattern="(function)((?:\s|\\\\s)+)">
91 <bygroups>
92 <token type="KeywordDeclaration"/>
93 <token type="Text"/>
94 </bygroups>
95 <push state="function"/>
96 </rule>
97 <rule pattern="(module)((?:\s|\\\\s)+)">
98 <bygroups>
99 <token type="KeywordDeclaration"/>
100 <token type="Text"/>
101 </bygroups>
102 <push state="module"/>
103 </rule>
104 <rule pattern="\b(if|else|for|switch|case|while|break|continue|default|do|try|catch|finally|return|throw|extends|function)\b">
105 <token type="Keyword"/>
106 </rule>
107 <rule pattern="\b(const|enum|hidden|public|protected|private|static)\b">
108 <token type="KeywordType"/>
109 </rule>
110 <rule pattern="\bvar\b">
111 <token type="KeywordDeclaration"/>
112 </rule>
113 <rule pattern="\b(Activity(Monitor|Recording)?|Ant(Plus)?|Application|Attention|Background|Communications|Cryptography|FitContributor|Graphics|Gregorian|Lang|Math|Media|Persisted(Content|Locations)|Position|Properties|Sensor(History|Logging)?|Storage|StringUtil|System|Test|Time(r)?|Toybox|UserProfile|WatchUi|Rez|Drawables|Strings|Fonts|method)\b">
114 <token type="NameBuiltin"/>
115 </rule>
116 <rule pattern="\b(me|self|\$)\b">
117 <token type="NameBuiltinPseudo"/>
118 </rule>
119 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
120 <token type="LiteralStringDouble"/>
121 </rule>
122 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;&#39;])*&#39;">
123 <token type="LiteralStringSingle"/>
124 </rule>
125 <rule pattern="-?(0x[0-9a-fA-F]+l?)">
126 <token type="LiteralNumberHex"/>
127 </rule>
128 <rule pattern="-?([0-9]+(\.[0-9]+[df]?|[df]))\b">
129 <token type="LiteralNumberFloat"/>
130 </rule>
131 <rule pattern="-?([0-9]+l?)">
132 <token type="LiteralNumberInteger"/>
133 </rule>
134 <rule pattern="[a-zA-Z_]\w*">
135 <token type="Name"/>
136 </rule>
137 </state>
138 <state name="import">
139 <rule pattern="([a-zA-Z_][\w_\.]*)(?:(\s+)(as)(\s+)([a-zA-Z_][\w_]*))?">
140 <bygroups>
141 <token type="NameNamespace"/>
142 <token type="Text"/>
143 <token type="KeywordNamespace"/>
144 <token type="Text"/>
145 <token type="NameNamespace"/>
146 </bygroups>
147 </rule>
148 <rule>
149 <pop depth="1"/>
150 </rule>
151 </state>
152 </rules>
153</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml
new file mode 100644
index 0000000..724a19f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/morrowindscript.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>MorrowindScript</name>
4 <alias>morrowind</alias>
5 <alias>mwscript</alias>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="\s+">
10 <token type="Text"/>
11 </rule>
12 <rule pattern=";.*$">
13 <token type="Comment"/>
14 </rule>
15 <rule pattern="([&#34;&#39;])(?:(?=(\\?))\2.)*?\1">
16 <token type="LiteralString"/>
17 </rule>
18 <rule pattern="[0-9]+">
19 <token type="LiteralNumberInteger"/>
20 </rule>
21 <rule pattern="[0-9]+\.[0-9]*(?!\.)">
22 <token type="LiteralNumberFloat"/>
23 </rule>
24 <rule>
25 <include state="keywords"/>
26 </rule>
27 <rule>
28 <include state="types"/>
29 </rule>
30 <rule>
31 <include state="builtins"/>
32 </rule>
33 <rule>
34 <include state="punct"/>
35 </rule>
36 <rule>
37 <include state="operators"/>
38 </rule>
39 <rule pattern="\n">
40 <token type="Text"/>
41 </rule>
42 <rule pattern="\S+\s+">
43 <token type="Text"/>
44 </rule>
45 <rule pattern="[a-zA-Z0-9_]\w*">
46 <token type="Name"/>
47 </rule>
48 </state>
49 <state name="keywords">
50 <rule pattern="(?i)(begin|if|else|elseif|endif|while|endwhile|return|to)\b">
51 <token type="Keyword"/>
52 </rule>
53 <rule pattern="(?i)(end)\b">
54 <token type="Keyword"/>
55 </rule>
56 <rule pattern="(?i)(end)\w+.*$">
57 <token type="Text"/>
58 </rule>
59 <rule pattern="[\w+]-&gt;[\w+]">
60 <token type="Operator"/>
61 </rule>
62 </state>
63 <state name="builtins">
64 <rule pattern="(?i)(Activate|AddItem|AddSoulGem|AddSpell|AddToLevCreature|AddToLevItem|AddTopic|AIActivate|AIEscort|AIEscortCell|AIFollow|AiFollowCell|AITravel|AIWander|BecomeWerewolf|Cast|ChangeWeather|Choice|ClearForceJump|ClearForceMoveJump|ClearForceRun|ClearForceSneak|ClearInfoActor|Disable|DisableLevitation|DisablePlayerControls|DisablePlayerFighting|DisablePlayerJumping|DisablePlayerLooking|DisablePlayerMagic|DisablePlayerViewSwitch|DisableTeleporting|DisableVanityMode|DontSaveObject|Drop|Enable|EnableBirthMenu|EnableClassMenu|EnableInventoryMenu|EnableLevelUpMenu|EnableLevitation|EnableMagicMenu|EnableMapMenu|EnableNameMenu|EnablePlayerControls|EnablePlayerFighting|EnablePlayerJumping|EnablePlayerLooking|EnablePlayerMagic|EnablePlayerViewSwitch|EnableRaceMenu|EnableRest|EnableStatsMenu|EnableTeleporting|EnableVanityMode|Equip|ExplodeSpell|Face|FadeIn|FadeOut|FadeTo|Fall|ForceGreeting|ForceJump|ForceRun|ForceSneak|Flee|GotoJail|HurtCollidingActor|HurtStandingActor|Journal|Lock|LoopGroup|LowerRank|MenuTest|MessageBox|ModAcrobatics|ModAgility|ModAlarm|ModAlchemy|ModAlteration|ModArmorBonus|ModArmorer|ModAthletics|ModAttackBonus|ModAxe|ModBlock|ModBluntWeapon|ModCastPenalty|ModChameleon|ModConjuration|ModCurrentFatigue|ModCurrentHealth|ModCurrentMagicka|ModDefendBonus|ModDestruction|ModDisposition|ModEnchant|ModEndurance|ModFactionReaction|ModFatigue|ModFight|ModFlee|ModFlying|ModHandToHand|ModHealth|ModHeavyArmor|ModIllusion|ModIntelligence|ModInvisible|ModLightArmor|ModLongBlade|ModLuck|ModMagicka|ModMarksman|ModMediumArmor|ModMercantile|ModMysticism|ModParalysis|ModPCCrimeLevel|ModPCFacRep|ModPersonality|ModRegion|ModReputation|ModResistBlight|ModResistCorprus|ModResistDisease|ModResistFire|ModResistFrost|ModResistMagicka|ModResistNormalWeapons|ModResistParalysis|ModResistPoison|ModResistShock|ModRestoration|ModScale|ModSecurity|ModShortBlade|ModSilence|ModSneak|ModSpear|ModSpeechcraft|ModSpeed|ModStrength|ModSuperJump|ModSwimSpeed|ModUnarmored|ModWaterBreathing|ModWaterLevel|ModWaterWalking|ModWillpower|Move|MoveWorld|PayFine|PayFineThief|PCClearExpelled|PCExpell|PCForce1stPerson|PCForce3rdPerson|PCJoinFaction|PCLowerRank|PCRaiseRank|PlaceAtMe|PlaceAtPC|PlaceItem|PlaceItemCell|PlayBink|PlayGroup|PlayLoopSound3D|PlayLoopSound3DVP|PlaySound|PlaySound3D|PlaySound3DVP|PlaySoundVP|Position|PositionCell|RaiseRank|RemoveEffects|RemoveFromLevCreature|RemoveFromLevItem|RemoveItem|RemoveSoulgem|RemoveSpell|RemoveSpellEffects|ResetActors|Resurrect|Rotate|RotateWorld|Say|StartScript|[S|s]et|SetAcrobatics|SetAgility|SetAlarm|SetAlchemy|SetAlteration|SetAngle|SetArmorBonus|SetArmorer|SetAthletics|SetAtStart|SetAttackBonus|SetAxe|SetBlock|SetBluntWeapon|SetCastPenalty|SetChameleon|SetConjuration|SetDelete|SetDefendBonus|SetDestruction|SetDisposition|SetEnchant|SetEndurance|SetFactionReaction|SetFatigue|SetFight|SetFlee|SetFlying|SetHandToHand|SetHealth|SetHeavyArmor|SetIllusion|SetIntelligence|SetInvisible|SetJournalIndex|SetLightArmor|SetLevel|SetLongBlade|SetLuck|SetMagicka|SetMarksman|SetMediumArmor|SetMercantile|SetMysticism|SetParalysis|SetPCCCrimeLevel|SetPCFacRep|SetPersonality|SetPos|SetReputation|SetResistBlight|SetResistCorprus|SetResistDisease|SetResistFire|SetResistFrost|SetResistMagicka|SetResistNormalWeapons|SetResistParalysis|SetResistPoison|SetResistShock|SetRestoration|SetScale|SetSecurity|SetShortBlade|SetSilence|SetSneak|SetSpear|SetSpeechcraft|SetSpeed|SetStrength|SetSuperJump|SetSwimSpeed|SetUnarmored|SetWaterBreathing|SetWaterlevel|SetWaterWalking|SetWerewolfAcrobatics|SetWillpower|ShowMap|ShowRestMenu|SkipAnim|StartCombat|StopCombat|StopScript|StopSound|StreamMusic|TurnMoonRed|TurnMoonWhite|UndoWerewolf|Unlock|WakeUpPC|CenterOnCell|CenterOnExterior|FillMap|FixMe|ToggleAI|ToggleCollision|ToggleFogOfWar|ToggleGodMode|ToggleMenus|ToggleSky|ToggleWorld|ToggleVanityMode|CellChanged|GetAcrobatics|GetAgility|GetAIPackageDone|GetAlarm|GetAlchemy|GetAlteration|GetAngle|GetArmorBonus|GetArmorer|GetAthletics|GetAttackBonus|GetAttacked|GetArmorType,|GetAxe|GetBlightDisease|GetBlock|GetBluntWeapon|GetButtonPressed|GetCastPenalty|GetChameleon|GetCollidingActor|GetCollidingPC|GetCommonDisease|GetConjuration|GetCurrentAIPackage|GetCurrentTime|GetCurrentWeather|GetDeadCount|GetDefendBonus|GetDestruction|GetDetected|GetDisabled|GetDisposition|GetDistance|GetEffect|GetEnchant|GetEndurance|GetFatigue|GetFight|GetFlee|GetFlying|GetForceJump|GetForceRun|GetForceSneak|GetHandToHand|GetHealth|GetHealthGetRatio|GetHeavyArmor|GetIllusion|GetIntelligence|GetInterior|GetInvisible|GetItemCount|GetJournalIndex|GetLightArmor|GetLineOfSight|GetLOS|GetLevel|GetLocked|GetLongBlade|GetLuck|GetMagicka|GetMarksman|GetMasserPhase|GetSecundaPhase|GetMediumArmor|GetMercantile|GetMysticism|GetParalysis|GetPCCell|GetPCCrimeLevel|GetPCinJail|GetPCJumping|GetPCRank|GetPCRunning|GetPCSleep|GetPCSneaking|GetPCTraveling|GetPersonality|GetPlayerControlsDisabled|GetPlayerFightingDisabled|GetPlayerJumpingDisabled|GetPlayerLookingDisabled|GetPlayerMagicDisabled|GetPos|GetRace|GetReputation|GetResistBlight|GetResistCorprus|GetResistDisease|GetResistFire|GetResistFrost|GetResistMagicka|GetResistNormalWeapons|GetResistParalysis|GetResistPoison|GetResistShock|GetRestoration|GetScale|GetSecondsPassed|GetSecurity|GetShortBlade|GetSilence|GetSneak|GetSoundPlaying|GetSpear|GetSpeechcraft|GetSpeed|GetSpell|GetSpellEffects|GetSpellReadied|GetSquareRoot|GetStandingActor|GetStandingPC|GetStrength|GetSuperJump|GetSwimSpeed|GetTarget|GetUnarmored|GetVanityModeDisabled|GetWaterBreathing|GetWaterLevel|GetWaterWalking|GetWeaponDrawn|GetWeaponType|GetWerewolfKills|GetWillpower|GetWindSpeed|HasItemEquipped|HasSoulgem|HitAttemptOnMe|HitOnMe|IsWerewolf|MenuMode|OnActivate|OnDeath|OnKnockout|OnMurder|PCExpelled|PCGet3rdPerson|PCKnownWerewolf|Random|RepairedOnMe|SameFaction|SayDone|ScriptRunning|AllowWereWolfForceGreeting|Companion|MinimumProfit|NoFlee|NoHello|NoIdle|NoLore|OnPCAdd|OnPCDrop|OnPCEquip|OnPCHitMe|OnPCRepair|PCSkipEquip|OnPCSoulGemUse|StayOutside|CrimeGoldDiscount|CrimeGoldTurnIn|Day|DaysPassed|GameHour|Month|NPCVoiceDistance|PCRace|PCWerewolf|PCVampire|TimeScale|VampClan|Year)\b">
65 <token type="NameBuiltin"/>
66 </rule>
67 <rule pattern="(?i)(sEffectWaterBreathing|sEffectSwiftSwim|sEffectWaterWalking|sEffectShield|sEffectFireShield|sEffectLightningShield|sEffectFrostShield|sEffectBurden|sEffectFeather|sEffectJump|sEffectLevitate|sEffectSlowFall|sEffectLock|sEffectOpen|sEffectFireDamage|sEffectShockDamage|sEffectFrostDamage|sEffectDrainAttribute|sEffectDrainHealth|sEffectDrainSpellpoints|sEffectDrainFatigue|sEffectDrainSkill|sEffectDamageAttribute|sEffectDamageHealth|sEffectDamageMagicka|sEffectDamageFatigue|sEffectDamageSkill|sEffectPoison|sEffectWeaknessToFire|sEffectWeaknessToFrost|sEffectWeaknessToShock|sEffectWeaknessToMagicka|sEffectWeaknessToCommonDisease|sEffectWeaknessToBlightDisease|sEffectWeaknessToCorprusDisease|sEffectWeaknessToPoison|sEffectWeaknessToNormalWeapons|sEffectDisintegrateWeapon|sEffectDisintegrateArmor|sEffectInvisibility|sEffectChameleon|sEffectLight|sEffectSanctuary|sEffectNightEye|sEffectCharm|sEffectParalyze|sEffectSilence|sEffectBlind|sEffectSound|sEffectCalmHumanoid|sEffectCalmCreature|sEffectFrenzyHumanoid|sEffectFrenzyCreature|sEffectDemoralizeHumanoid|sEffectDemoralizeCreature|sEffectRallyHumanoid|sEffectRallyCreature|sEffectDispel|sEffectSoultrap|sEffectTelekinesis|sEffectMark|sEffectRecall|sEffectDivineIntervention|sEffectAlmsiviIntervention|sEffectDetectAnimal|sEffectDetectEnchantment|sEffectDetectKey|sEffectSpellAbsorption|sEffectReflect|sEffectCureCommonDisease|sEffectCureBlightDisease|sEffectCureCorprusDisease|sEffectCurePoison|sEffectCureParalyzation|sEffectRestoreAttribute|sEffectRestoreHealth|sEffectRestoreSpellPoints|sEffectRestoreFatigue|sEffectRestoreSkill|sEffectFortifyAttribute|sEffectFortifyHealth|sEffectFortifySpellpoints|sEffectFortifyFatigue|sEffectFortifySkill|sEffectFortifyMagickaMultiplier|sEffectAbsorbAttribute|sEffectAbsorbHealth|sEffectAbsorbSpellPoints|sEffectAbsorbFatigue|sEffectAbsorbSkill|sEffectResistFire|sEffectResistFrost|sEffectResistShock|sEffectResistMagicka|sEffectResistCommonDisease|sEffectResistBlightDisease|sEffectResistCorprusDisease|sEffectResistPoison|sEffectResistNormalWeapons|sEffectResistParalysis|sEffectRemoveCurse|sEffectTurnUndead|sEffectSummonScamp|sEffectSummonClannfear|sEffectSummonDaedroth|sEffectSummonDremora|sEffectSummonAncestralGhost|sEffectSummonSkeletalMinion|sEffectSummonLeastBonewalker|sEffectSummonGreaterBonewalker|sEffectSummonBonelord|sEffectSummonWingedTwilight|sEffectSummonHunger|sEffectSummonGoldensaint|sEffectSummonFlameAtronach|sEffectSummonFrostAtronach|sEffectSummonStormAtronach|sEffectFortifyAttackBonus|sEffectCommandCreatures|sEffectCommandHumanoids|sEffectBoundDagger|sEffectBoundLongsword|sEffectBoundMace|sEffectBoundBattleAxe|sEffectBoundSpear|sEffectBoundLongbow|sEffectExtraSpell|sEffectBoundCuirass|sEffectBoundHelm|sEffectBoundBoots|sEffectBoundShield|sEffectBoundGloves|sEffectCorpus|sEffectVampirism|sEffectSummonCenturionSphere|sEffectSunDamage|sEffectStuntedMagicka)">
68 <token type="NameBuiltin"/>
69 </rule>
70 </state>
71 <state name="types">
72 <rule pattern="(?i)(short|long|float)\b">
73 <token type="KeywordType"/>
74 </rule>
75 </state>
76 <state name="punct">
77 <rule pattern="[()]">
78 <token type="Punctuation"/>
79 </rule>
80 </state>
81 <state name="operators">
82 <rule pattern="[#=,./%+\-?]">
83 <token type="Operator"/>
84 </rule>
85 <rule pattern="(==|&lt;=|&lt;|&gt;=|&gt;|!=)">
86 <token type="Operator"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml
new file mode 100644
index 0000000..b6c2046
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/mysql.xml
@@ -0,0 +1,121 @@
1<lexer>
2 <config>
3 <name>MySQL</name>
4 <alias>mysql</alias>
5 <alias>mariadb</alias>
6 <filename>*.sql</filename>
7 <mime_type>text/x-mysql</mime_type>
8 <mime_type>text/x-mariadb</mime_type>
9 <case_insensitive>true</case_insensitive>
10 <not_multiline>true</not_multiline>
11 </config>
12 <rules>
13 <state name="string">
14 <rule pattern="[^&#39;]+">
15 <token type="LiteralStringSingle"/>
16 </rule>
17 <rule pattern="&#39;&#39;">
18 <token type="LiteralStringSingle"/>
19 </rule>
20 <rule pattern="&#39;">
21 <token type="LiteralStringSingle"/>
22 <pop depth="1"/>
23 </rule>
24 </state>
25 <state name="double-string">
26 <rule pattern="[^&#34;]+">
27 <token type="LiteralStringDouble"/>
28 </rule>
29 <rule pattern="&#34;&#34;">
30 <token type="LiteralStringDouble"/>
31 </rule>
32 <rule pattern="&#34;">
33 <token type="LiteralStringDouble"/>
34 <pop depth="1"/>
35 </rule>
36 </state>
37 <state name="root">
38 <rule pattern="\s+">
39 <token type="TextWhitespace"/>
40 </rule>
41 <rule pattern="(#|--\s+).*\n?">
42 <token type="CommentSingle"/>
43 </rule>
44 <rule pattern="/\*">
45 <token type="CommentMultiline"/>
46 <push state="multiline-comments"/>
47 </rule>
48 <rule pattern="[0-9]+">
49 <token type="LiteralNumberInteger"/>
50 </rule>
51 <rule pattern="[0-9]*\.[0-9]+(e[+-][0-9]+)">
52 <token type="LiteralNumberFloat"/>
53 </rule>
54 <rule pattern="((?:_[a-z0-9]+)?)(&#39;)">
55 <bygroups>
56 <token type="LiteralStringAffix"/>
57 <token type="LiteralStringSingle"/>
58 </bygroups>
59 <push state="string"/>
60 </rule>
61 <rule pattern="((?:_[a-z0-9]+)?)(&#34;)">
62 <bygroups>
63 <token type="LiteralStringAffix"/>
64 <token type="LiteralStringDouble"/>
65 </bygroups>
66 <push state="double-string"/>
67 </rule>
68 <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]">
69 <token type="Operator"/>
70 </rule>
71 <rule pattern="\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*)(\()?">
72 <bygroups>
73 <token type="KeywordType"/>
74 <token type="TextWhitespace"/>
75 <token type="Punctuation"/>
76 </bygroups>
77 </rule>
78 <rule pattern="\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|flush|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|identified|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|privileges|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|user|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\b">
79 <token type="Keyword"/>
80 </rule>
81 <rule pattern="\b(auto_increment|engine|charset|tables)\b">
82 <token type="KeywordPseudo"/>
83 </rule>
84 <rule pattern="(true|false|null)">
85 <token type="NameConstant"/>
86 </rule>
87 <rule pattern="([a-z_]\w*)(\s*)(\()">
88 <bygroups>
89 <token type="NameFunction"/>
90 <token type="TextWhitespace"/>
91 <token type="Punctuation"/>
92 </bygroups>
93 </rule>
94 <rule pattern="[a-z_]\w*">
95 <token type="Name"/>
96 </rule>
97 <rule pattern="@[a-z0-9]*[._]*[a-z0-9]*">
98 <token type="NameVariable"/>
99 </rule>
100 <rule pattern="[;:()\[\],.]">
101 <token type="Punctuation"/>
102 </rule>
103 </state>
104 <state name="multiline-comments">
105 <rule pattern="/\*">
106 <token type="CommentMultiline"/>
107 <push state="multiline-comments"/>
108 </rule>
109 <rule pattern="\*/">
110 <token type="CommentMultiline"/>
111 <pop depth="1"/>
112 </rule>
113 <rule pattern="[^/*]+">
114 <token type="CommentMultiline"/>
115 </rule>
116 <rule pattern="[/*]">
117 <token type="CommentMultiline"/>
118 </rule>
119 </state>
120 </rules>
121</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml
new file mode 100644
index 0000000..a6107b5
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nasm.xml
@@ -0,0 +1,124 @@
1<lexer>
2 <config>
3 <name>NASM</name>
4 <alias>nasm</alias>
5 <filename>*.asm</filename>
6 <filename>*.ASM</filename>
7 <mime_type>text/x-nasm</mime_type>
8 <case_insensitive>true</case_insensitive>
9 </config>
10 <rules>
11 <state name="punctuation">
12 <rule pattern="[,():\[\]]+">
13 <token type="Punctuation"/>
14 </rule>
15 <rule pattern="[&amp;|^&lt;&gt;+*/%~-]+">
16 <token type="Operator"/>
17 </rule>
18 <rule pattern="[$]+">
19 <token type="KeywordConstant"/>
20 </rule>
21 <rule pattern="seg|wrt|strict">
22 <token type="OperatorWord"/>
23 </rule>
24 <rule pattern="byte|[dq]?word">
25 <token type="KeywordType"/>
26 </rule>
27 </state>
28 <state name="root">
29 <rule pattern="^\s*%">
30 <token type="CommentPreproc"/>
31 <push state="preproc"/>
32 </rule>
33 <rule>
34 <include state="whitespace"/>
35 </rule>
36 <rule pattern="[a-z$._?][\w$.?#@~]*:">
37 <token type="NameLabel"/>
38 </rule>
39 <rule pattern="([a-z$._?][\w$.?#@~]*)(\s+)(equ)">
40 <bygroups>
41 <token type="NameConstant"/>
42 <token type="KeywordDeclaration"/>
43 <token type="KeywordDeclaration"/>
44 </bygroups>
45 <push state="instruction-args"/>
46 </rule>
47 <rule pattern="BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE">
48 <token type="Keyword"/>
49 <push state="instruction-args"/>
50 </rule>
51 <rule pattern="(?:res|d)[bwdqt]|times">
52 <token type="KeywordDeclaration"/>
53 <push state="instruction-args"/>
54 </rule>
55 <rule pattern="[a-z$._?][\w$.?#@~]*">
56 <token type="NameFunction"/>
57 <push state="instruction-args"/>
58 </rule>
59 <rule pattern="[\r\n]+">
60 <token type="Text"/>
61 </rule>
62 </state>
63 <state name="instruction-args">
64 <rule pattern="&#34;(\\&#34;|[^&#34;\n])*&#34;|&#39;(\\&#39;|[^&#39;\n])*&#39;|`(\\`|[^`\n])*`">
65 <token type="LiteralString"/>
66 </rule>
67 <rule pattern="(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)">
68 <token type="LiteralNumberHex"/>
69 </rule>
70 <rule pattern="[0-7]+q">
71 <token type="LiteralNumberOct"/>
72 </rule>
73 <rule pattern="[01]+b">
74 <token type="LiteralNumberBin"/>
75 </rule>
76 <rule pattern="[0-9]+\.e?[0-9]+">
77 <token type="LiteralNumberFloat"/>
78 </rule>
79 <rule pattern="[0-9]+">
80 <token type="LiteralNumberInteger"/>
81 </rule>
82 <rule>
83 <include state="punctuation"/>
84 </rule>
85 <rule pattern="r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]">
86 <token type="NameBuiltin"/>
87 </rule>
88 <rule pattern="[a-z$._?][\w$.?#@~]*">
89 <token type="NameVariable"/>
90 </rule>
91 <rule pattern="[\r\n]+">
92 <token type="Text"/>
93 <pop depth="1"/>
94 </rule>
95 <rule>
96 <include state="whitespace"/>
97 </rule>
98 </state>
99 <state name="preproc">
100 <rule pattern="[^;\n]+">
101 <token type="CommentPreproc"/>
102 </rule>
103 <rule pattern=";.*?\n">
104 <token type="CommentSingle"/>
105 <pop depth="1"/>
106 </rule>
107 <rule pattern="\n">
108 <token type="CommentPreproc"/>
109 <pop depth="1"/>
110 </rule>
111 </state>
112 <state name="whitespace">
113 <rule pattern="\n">
114 <token type="Text"/>
115 </rule>
116 <rule pattern="[ \t]+">
117 <token type="Text"/>
118 </rule>
119 <rule pattern=";.*">
120 <token type="CommentSingle"/>
121 </rule>
122 </state>
123 </rules>
124</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml
new file mode 100644
index 0000000..b932657
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/newspeak.xml
@@ -0,0 +1,121 @@
1<lexer>
2 <config>
3 <name>Newspeak</name>
4 <alias>newspeak</alias>
5 <filename>*.ns2</filename>
6 <mime_type>text/x-newspeak</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\b(Newsqueak2)\b">
11 <token type="KeywordDeclaration"/>
12 </rule>
13 <rule pattern="&#39;[^&#39;]*&#39;">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="\b(class)(\s+)(\w+)(\s*)">
17 <bygroups>
18 <token type="KeywordDeclaration"/>
19 <token type="Text"/>
20 <token type="NameClass"/>
21 <token type="Text"/>
22 </bygroups>
23 </rule>
24 <rule pattern="\b(mixin|self|super|private|public|protected|nil|true|false)\b">
25 <token type="Keyword"/>
26 </rule>
27 <rule pattern="(\w+\:)(\s*)([a-zA-Z_]\w+)">
28 <bygroups>
29 <token type="NameFunction"/>
30 <token type="Text"/>
31 <token type="NameVariable"/>
32 </bygroups>
33 </rule>
34 <rule pattern="(\w+)(\s*)(=)">
35 <bygroups>
36 <token type="NameAttribute"/>
37 <token type="Text"/>
38 <token type="Operator"/>
39 </bygroups>
40 </rule>
41 <rule pattern="&lt;\w+&gt;">
42 <token type="CommentSpecial"/>
43 </rule>
44 <rule>
45 <include state="expressionstat"/>
46 </rule>
47 <rule>
48 <include state="whitespace"/>
49 </rule>
50 </state>
51 <state name="expressionstat">
52 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
53 <token type="LiteralNumberFloat"/>
54 </rule>
55 <rule pattern="\d+">
56 <token type="LiteralNumberInteger"/>
57 </rule>
58 <rule pattern=":\w+">
59 <token type="NameVariable"/>
60 </rule>
61 <rule pattern="(\w+)(::)">
62 <bygroups>
63 <token type="NameVariable"/>
64 <token type="Operator"/>
65 </bygroups>
66 </rule>
67 <rule pattern="\w+:">
68 <token type="NameFunction"/>
69 </rule>
70 <rule pattern="\w+">
71 <token type="NameVariable"/>
72 </rule>
73 <rule pattern="\(|\)">
74 <token type="Punctuation"/>
75 </rule>
76 <rule pattern="\[|\]">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="\{|\}">
80 <token type="Punctuation"/>
81 </rule>
82 <rule pattern="(\^|\+|\/|~|\*|&lt;|&gt;|=|@|%|\||&amp;|\?|!|,|-|:)">
83 <token type="Operator"/>
84 </rule>
85 <rule pattern="\.|;">
86 <token type="Punctuation"/>
87 </rule>
88 <rule>
89 <include state="whitespace"/>
90 </rule>
91 <rule>
92 <include state="literals"/>
93 </rule>
94 </state>
95 <state name="literals">
96 <rule pattern="\$.">
97 <token type="LiteralString"/>
98 </rule>
99 <rule pattern="&#39;[^&#39;]*&#39;">
100 <token type="LiteralString"/>
101 </rule>
102 <rule pattern="#&#39;[^&#39;]*&#39;">
103 <token type="LiteralStringSymbol"/>
104 </rule>
105 <rule pattern="#\w+:?">
106 <token type="LiteralStringSymbol"/>
107 </rule>
108 <rule pattern="#(\+|\/|~|\*|&lt;|&gt;|=|@|%|\||&amp;|\?|!|,|-)+">
109 <token type="LiteralStringSymbol"/>
110 </rule>
111 </state>
112 <state name="whitespace">
113 <rule pattern="\s+">
114 <token type="Text"/>
115 </rule>
116 <rule pattern="&#34;[^&#34;]*&#34;">
117 <token type="Comment"/>
118 </rule>
119 </state>
120 </rules>
121</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml
new file mode 100644
index 0000000..46bdf57
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nginx.xml
@@ -0,0 +1,98 @@
1<lexer>
2 <config>
3 <name>Nginx configuration file</name>
4 <alias>nginx</alias>
5 <filename>nginx.conf</filename>
6 <mime_type>text/x-nginx-conf</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="(include)(\s+)([^\s;]+)">
11 <bygroups>
12 <token type="Keyword"/>
13 <token type="Text"/>
14 <token type="Name"/>
15 </bygroups>
16 </rule>
17 <rule pattern="[^\s;#]+">
18 <token type="Keyword"/>
19 <push state="stmt"/>
20 </rule>
21 <rule>
22 <include state="base"/>
23 </rule>
24 </state>
25 <state name="block">
26 <rule pattern="\}">
27 <token type="Punctuation"/>
28 <pop depth="2"/>
29 </rule>
30 <rule pattern="[^\s;#]+">
31 <token type="KeywordNamespace"/>
32 <push state="stmt"/>
33 </rule>
34 <rule>
35 <include state="base"/>
36 </rule>
37 </state>
38 <state name="stmt">
39 <rule pattern="\{">
40 <token type="Punctuation"/>
41 <push state="block"/>
42 </rule>
43 <rule pattern=";">
44 <token type="Punctuation"/>
45 <pop depth="1"/>
46 </rule>
47 <rule>
48 <include state="base"/>
49 </rule>
50 </state>
51 <state name="base">
52 <rule pattern="#.*\n">
53 <token type="CommentSingle"/>
54 </rule>
55 <rule pattern="on|off">
56 <token type="NameConstant"/>
57 </rule>
58 <rule pattern="\$[^\s;#()]+">
59 <token type="NameVariable"/>
60 </rule>
61 <rule pattern="([a-z0-9.-]+)(:)([0-9]+)">
62 <bygroups>
63 <token type="Name"/>
64 <token type="Punctuation"/>
65 <token type="LiteralNumberInteger"/>
66 </bygroups>
67 </rule>
68 <rule pattern="[a-z-]+/[a-z-+]+">
69 <token type="LiteralString"/>
70 </rule>
71 <rule pattern="[0-9]+[km]?\b">
72 <token type="LiteralNumberInteger"/>
73 </rule>
74 <rule pattern="(~)(\s*)([^\s{]+)">
75 <bygroups>
76 <token type="Punctuation"/>
77 <token type="Text"/>
78 <token type="LiteralStringRegex"/>
79 </bygroups>
80 </rule>
81 <rule pattern="[:=~]">
82 <token type="Punctuation"/>
83 </rule>
84 <rule pattern="[^\s;#{}$]+">
85 <token type="LiteralString"/>
86 </rule>
87 <rule pattern="/[^\s;#]*">
88 <token type="Name"/>
89 </rule>
90 <rule pattern="\s+">
91 <token type="Text"/>
92 </rule>
93 <rule pattern="[$;]">
94 <token type="Text"/>
95 </rule>
96 </state>
97 </rules>
98</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml
new file mode 100644
index 0000000..a1bfcf7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nim.xml
@@ -0,0 +1,207 @@
1<lexer>
2 <config>
3 <name>Nim</name>
4 <alias>nim</alias>
5 <alias>nimrod</alias>
6 <filename>*.nim</filename>
7 <filename>*.nimrod</filename>
8 <mime_type>text/x-nim</mime_type>
9 <case_insensitive>true</case_insensitive>
10 </config>
11 <rules>
12 <state name="dqs">
13 <rule pattern="\\([\\abcefnrtvl&#34;\&#39;]|\n|x[a-f0-9]{2}|[0-9]{1,3})">
14 <token type="LiteralStringEscape"/>
15 </rule>
16 <rule pattern="&#34;">
17 <token type="LiteralString"/>
18 <pop depth="1"/>
19 </rule>
20 <rule>
21 <include state="strings"/>
22 </rule>
23 </state>
24 <state name="tdqs">
25 <rule pattern="&#34;&#34;&#34;(?!&#34;)">
26 <token type="LiteralString"/>
27 <pop depth="1"/>
28 </rule>
29 <rule>
30 <include state="strings"/>
31 </rule>
32 <rule>
33 <include state="nl"/>
34 </rule>
35 </state>
36 <state name="funcname">
37 <rule pattern="((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*">
38 <token type="NameFunction"/>
39 <pop depth="1"/>
40 </rule>
41 <rule pattern="`.+`">
42 <token type="NameFunction"/>
43 <pop depth="1"/>
44 </rule>
45 </state>
46 <state name="int-suffix">
47 <rule pattern="\&#39;i(32|64)">
48 <token type="LiteralNumberIntegerLong"/>
49 </rule>
50 <rule pattern="\&#39;i(8|16)">
51 <token type="LiteralNumberInteger"/>
52 </rule>
53 <rule>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="float-suffix">
58 <rule pattern="\&#39;f(32|64)">
59 <token type="LiteralNumberFloat"/>
60 </rule>
61 <rule>
62 <pop depth="1"/>
63 </rule>
64 </state>
65 <state name="strings">
66 <rule pattern="(?&lt;!\$)\$(\d+|#|\w+)+">
67 <token type="LiteralStringInterpol"/>
68 </rule>
69 <rule pattern="[^\\\&#39;&#34;$\n]+">
70 <token type="LiteralString"/>
71 </rule>
72 <rule pattern="[\&#39;&#34;\\]">
73 <token type="LiteralString"/>
74 </rule>
75 <rule pattern="\$">
76 <token type="LiteralString"/>
77 </rule>
78 </state>
79 <state name="nl">
80 <rule pattern="\n">
81 <token type="LiteralString"/>
82 </rule>
83 </state>
84 <state name="chars">
85 <rule pattern="\\([\\abcefnrtvl&#34;\&#39;]|x[a-f0-9]{2}|[0-9]{1,3})">
86 <token type="LiteralStringEscape"/>
87 </rule>
88 <rule pattern="&#39;">
89 <token type="LiteralStringChar"/>
90 <pop depth="1"/>
91 </rule>
92 <rule pattern=".">
93 <token type="LiteralStringChar"/>
94 </rule>
95 </state>
96 <state name="rdqs">
97 <rule pattern="&#34;(?!&#34;)">
98 <token type="LiteralString"/>
99 <pop depth="1"/>
100 </rule>
101 <rule pattern="&#34;&#34;">
102 <token type="LiteralStringEscape"/>
103 </rule>
104 <rule>
105 <include state="strings"/>
106 </rule>
107 </state>
108 <state name="float-number">
109 <rule pattern="\.(?!\.)[0-9_]*">
110 <token type="LiteralNumberFloat"/>
111 </rule>
112 <rule pattern="e[+-]?[0-9][0-9_]*">
113 <token type="LiteralNumberFloat"/>
114 </rule>
115 <rule>
116 <pop depth="1"/>
117 </rule>
118 </state>
119 <state name="root">
120 <rule pattern="#\[[\s\S]*?\]#">
121 <token type="CommentMultiline"/>
122 </rule>
123 <rule pattern="##.*$">
124 <token type="LiteralStringDoc"/>
125 </rule>
126 <rule pattern="#.*$">
127 <token type="Comment"/>
128 </rule>
129 <rule pattern="[*=&gt;&lt;+\-/@$~&amp;%!?|\\\[\]]">
130 <token type="Operator"/>
131 </rule>
132 <rule pattern="\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;">
133 <token type="Punctuation"/>
134 </rule>
135 <rule pattern="(?:[\w]+)&#34;">
136 <token type="LiteralString"/>
137 <push state="rdqs"/>
138 </rule>
139 <rule pattern="&#34;&#34;&#34;">
140 <token type="LiteralString"/>
141 <push state="tdqs"/>
142 </rule>
143 <rule pattern="&#34;">
144 <token type="LiteralString"/>
145 <push state="dqs"/>
146 </rule>
147 <rule pattern="&#39;">
148 <token type="LiteralStringChar"/>
149 <push state="chars"/>
150 </rule>
151 <rule pattern="(a_?n_?d_?|o_?r_?|n_?o_?t_?|x_?o_?r_?|s_?h_?l_?|s_?h_?r_?|d_?i_?v_?|m_?o_?d_?|i_?n_?|n_?o_?t_?i_?n_?|i_?s_?|i_?s_?n_?o_?t_?)\b">
152 <token type="OperatorWord"/>
153 </rule>
154 <rule pattern="(p_?r_?o_?c_?\s)(?![(\[\]])">
155 <token type="Keyword"/>
156 <push state="funcname"/>
157 </rule>
158 <rule pattern="(a_?d_?d_?r_?|a_?n_?d_?|a_?s_?|a_?s_?m_?|a_?t_?o_?m_?i_?c_?|b_?i_?n_?d_?|b_?l_?o_?c_?k_?|b_?r_?e_?a_?k_?|c_?a_?s_?e_?|c_?a_?s_?t_?|c_?o_?n_?c_?e_?p_?t_?|c_?o_?n_?s_?t_?|c_?o_?n_?t_?i_?n_?u_?e_?|c_?o_?n_?v_?e_?r_?t_?e_?r_?|d_?e_?f_?e_?r_?|d_?i_?s_?c_?a_?r_?d_?|d_?i_?s_?t_?i_?n_?c_?t_?|d_?i_?v_?|d_?o_?|e_?l_?i_?f_?|e_?l_?s_?e_?|e_?n_?d_?|e_?n_?u_?m_?|e_?x_?c_?e_?p_?t_?|e_?x_?p_?o_?r_?t_?|f_?i_?n_?a_?l_?l_?y_?|f_?o_?r_?|f_?u_?n_?c_?|i_?f_?|i_?n_?|y_?i_?e_?l_?d_?|i_?n_?t_?e_?r_?f_?a_?c_?e_?|i_?s_?|i_?s_?n_?o_?t_?|i_?t_?e_?r_?a_?t_?o_?r_?|l_?e_?t_?|m_?a_?c_?r_?o_?|m_?e_?t_?h_?o_?d_?|m_?i_?x_?i_?n_?|m_?o_?d_?|n_?o_?t_?|n_?o_?t_?i_?n_?|o_?b_?j_?e_?c_?t_?|o_?f_?|o_?r_?|o_?u_?t_?|p_?r_?o_?c_?|p_?t_?r_?|r_?a_?i_?s_?e_?|r_?e_?f_?|r_?e_?t_?u_?r_?n_?|s_?h_?a_?r_?e_?d_?|s_?h_?l_?|s_?h_?r_?|s_?t_?a_?t_?i_?c_?|t_?e_?m_?p_?l_?a_?t_?e_?|t_?r_?y_?|t_?u_?p_?l_?e_?|t_?y_?p_?e_?|w_?h_?e_?n_?|w_?h_?i_?l_?e_?|w_?i_?t_?h_?|w_?i_?t_?h_?o_?u_?t_?|x_?o_?r_?)\b">
159 <token type="Keyword"/>
160 </rule>
161 <rule pattern="(f_?r_?o_?m_?|i_?m_?p_?o_?r_?t_?|i_?n_?c_?l_?u_?d_?e_?)\b">
162 <token type="KeywordNamespace"/>
163 </rule>
164 <rule pattern="(v_?a_?r)\b">
165 <token type="KeywordDeclaration"/>
166 </rule>
167 <rule pattern="(i_?n_?t_?|i_?n_?t_?8_?|i_?n_?t_?1_?6_?|i_?n_?t_?3_?2_?|i_?n_?t_?6_?4_?|f_?l_?o_?a_?t_?|f_?l_?o_?a_?t_?3_?2_?|f_?l_?o_?a_?t_?6_?4_?|b_?o_?o_?l_?|c_?h_?a_?r_?|r_?a_?n_?g_?e_?|a_?r_?r_?a_?y_?|s_?e_?q_?|s_?e_?t_?|s_?t_?r_?i_?n_?g_?)\b">
168 <token type="KeywordType"/>
169 </rule>
170 <rule pattern="(n_?i_?l_?|t_?r_?u_?e_?|f_?a_?l_?s_?e_?)\b">
171 <token type="KeywordPseudo"/>
172 </rule>
173 <rule pattern="\b_\b">
174 <token type="Name"/>
175 </rule>
176 <rule pattern="\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*">
177 <token type="Name"/>
178 </rule>
179 <rule pattern="[0-9][0-9_]*(?=([e.]|\&#39;f(32|64)))">
180 <token type="LiteralNumberFloat"/>
181 <push state="float-suffix" state="float-number"/>
182 </rule>
183 <rule pattern="0x[a-f0-9][a-f0-9_]*">
184 <token type="LiteralNumberHex"/>
185 <push state="int-suffix"/>
186 </rule>
187 <rule pattern="0b[01][01_]*">
188 <token type="LiteralNumberBin"/>
189 <push state="int-suffix"/>
190 </rule>
191 <rule pattern="0o[0-7][0-7_]*">
192 <token type="LiteralNumberOct"/>
193 <push state="int-suffix"/>
194 </rule>
195 <rule pattern="[0-9][0-9_]*">
196 <token type="LiteralNumberInteger"/>
197 <push state="int-suffix"/>
198 </rule>
199 <rule pattern="\s+">
200 <token type="Text"/>
201 </rule>
202 <rule pattern=".+$">
203 <token type="Error"/>
204 </rule>
205 </state>
206 </rules>
207</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml
new file mode 100644
index 0000000..0ed040c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/nix.xml
@@ -0,0 +1,258 @@
1<lexer>
2 <config>
3 <name>Nix</name>
4 <alias>nixos</alias>
5 <alias>nix</alias>
6 <filename>*.nix</filename>
7 <mime_type>text/x-nix</mime_type>
8 </config>
9 <rules>
10 <state name="space">
11 <rule pattern="[ \t\r\n]+">
12 <token type="Text"/>
13 </rule>
14 </state>
15 <state name="paren">
16 <rule pattern="\)">
17 <token type="Punctuation"/>
18 <pop depth="1"/>
19 </rule>
20 <rule>
21 <include state="root"/>
22 </rule>
23 </state>
24 <state name="scope">
25 <rule pattern="}:">
26 <token type="Punctuation"/>
27 <pop depth="1"/>
28 </rule>
29 <rule pattern="}">
30 <token type="Punctuation"/>
31 <pop depth="1"/>
32 </rule>
33 <rule pattern="in(?![a-zA-Z0-9_&#39;-])">
34 <token type="Keyword"/>
35 <pop depth="1"/>
36 </rule>
37 <rule pattern="\${">
38 <token type="LiteralStringInterpol"/>
39 <push state="interpol"/>
40 </rule>
41 <rule>
42 <include state="root"/>
43 </rule>
44 <rule pattern="(=|\?|,)">
45 <token type="Operator"/>
46 </rule>
47 </state>
48 <state name="builtins">
49 <rule pattern="throw(?![a-zA-Z0-9_&#39;-])">
50 <token type="NameException"/>
51 </rule>
52 <rule pattern="(dependencyClosure|fetchTarball|filterSource|currentTime|removeAttrs|baseNameOf|derivation|toString|builtins|getAttr|hasAttr|getEnv|isNull|abort|dirOf|toXML|map)(?![a-zA-Z0-9_&#39;-])">
53 <token type="NameBuiltin"/>
54 </rule>
55 </state>
56 <state name="literals">
57 <rule pattern="(false|true|null)(?![a-zA-Z0-9_&#39;-])">
58 <token type="NameConstant"/>
59 </rule>
60 <rule>
61 <include state="uri"/>
62 </rule>
63 <rule>
64 <include state="path"/>
65 </rule>
66 <rule>
67 <include state="int"/>
68 </rule>
69 <rule>
70 <include state="float"/>
71 </rule>
72 </state>
73 <state name="keywords">
74 <rule pattern="import(?![a-zA-Z0-9_&#39;-])">
75 <token type="KeywordNamespace"/>
76 </rule>
77 <rule pattern="(inherit|assert|with|then|else|rec|if)(?![a-zA-Z0-9_&#39;-])">
78 <token type="Keyword"/>
79 </rule>
80 </state>
81 <state name="list">
82 <rule pattern="\]">
83 <token type="Punctuation"/>
84 <pop depth="1"/>
85 </rule>
86 <rule>
87 <include state="root"/>
88 </rule>
89 </state>
90 <state name="operators">
91 <rule pattern=" [/-] ">
92 <token type="Operator"/>
93 </rule>
94 <rule pattern="(\.)(\${)">
95 <bygroups>
96 <token type="Operator"/>
97 <token type="LiteralStringInterpol"/>
98 </bygroups>
99 <push state="interpol"/>
100 </rule>
101 <rule pattern="(\?)(\s*)(\${)">
102 <bygroups>
103 <token type="Operator"/>
104 <token type="Text"/>
105 <token type="LiteralStringInterpol"/>
106 </bygroups>
107 <push state="interpol"/>
108 </rule>
109 <rule pattern="(&amp;&amp;|&gt;=|&lt;=|\+\+|-&gt;|!=|\|\||//|==|@|!|\+|\?|&lt;|\.|&gt;|\*)">
110 <token type="Operator"/>
111 </rule>
112 <rule pattern="[;:]">
113 <token type="Punctuation"/>
114 </rule>
115 </state>
116 <state name="comment">
117 <rule pattern="\*/">
118 <token type="CommentMultiline"/>
119 <pop depth="1"/>
120 </rule>
121 <rule pattern=".|\n">
122 <token type="CommentMultiline"/>
123 </rule>
124 </state>
125 <state name="interpol">
126 <rule pattern="}">
127 <token type="LiteralStringInterpol"/>
128 <pop depth="1"/>
129 </rule>
130 <rule>
131 <include state="root"/>
132 </rule>
133 </state>
134 <state name="path">
135 <rule pattern="[a-zA-Z0-9._+-]*(/[a-zA-Z0-9._+-]+)+">
136 <token type="LiteralStringRegex"/>
137 </rule>
138 <rule pattern="~(/[a-zA-Z0-9._+-]+)+/?">
139 <token type="LiteralStringRegex"/>
140 </rule>
141 <rule pattern="&lt;[a-zA-Z0-9._+-]+(/[a-zA-Z0-9._+-]+)*&gt;">
142 <token type="LiteralStringRegex"/>
143 </rule>
144 </state>
145 <state name="float">
146 <rule pattern="-?(([1-9][0-9]*\.[0-9]*)|(0?\.[0-9]+))([Ee][+-]?[0-9]+)?(?![a-zA-Z0-9_&#39;-])">
147 <token type="LiteralNumberFloat"/>
148 </rule>
149 </state>
150 <state name="root">
151 <rule>
152 <include state="keywords"/>
153 </rule>
154 <rule>
155 <include state="builtins"/>
156 </rule>
157 <rule>
158 <include state="literals"/>
159 </rule>
160 <rule>
161 <include state="operators"/>
162 </rule>
163 <rule pattern="#.*$">
164 <token type="CommentSingle"/>
165 </rule>
166 <rule pattern="/\*">
167 <token type="CommentMultiline"/>
168 <push state="comment"/>
169 </rule>
170 <rule pattern="\(">
171 <token type="Punctuation"/>
172 <push state="paren"/>
173 </rule>
174 <rule pattern="\[">
175 <token type="Punctuation"/>
176 <push state="list"/>
177 </rule>
178 <rule pattern="&#34;">
179 <token type="LiteralStringDouble"/>
180 <push state="qstring"/>
181 </rule>
182 <rule pattern="&#39;&#39;">
183 <token type="LiteralStringSingle"/>
184 <push state="istring"/>
185 </rule>
186 <rule pattern="{">
187 <token type="Punctuation"/>
188 <push state="scope"/>
189 </rule>
190 <rule pattern="let(?![a-zA-Z0-9_&#39;-])">
191 <token type="Keyword"/>
192 <push state="scope"/>
193 </rule>
194 <rule>
195 <include state="id"/>
196 </rule>
197 <rule>
198 <include state="space"/>
199 </rule>
200 </state>
201 <state name="int">
202 <rule pattern="-?[0-9]+(?![a-zA-Z0-9_&#39;-])">
203 <token type="LiteralNumberInteger"/>
204 </rule>
205 </state>
206 <state name="uri">
207 <rule pattern="[a-zA-Z][a-zA-Z0-9+.-]*:[a-zA-Z0-9%/?:@&amp;=+$,_.!~*&#39;-]+">
208 <token type="LiteralStringDoc"/>
209 </rule>
210 </state>
211 <state name="qstring">
212 <rule pattern="&#34;">
213 <token type="LiteralStringDouble"/>
214 <pop depth="1"/>
215 </rule>
216 <rule pattern="\${">
217 <token type="LiteralStringInterpol"/>
218 <push state="interpol"/>
219 </rule>
220 <rule pattern="\\.">
221 <token type="LiteralStringEscape"/>
222 </rule>
223 <rule pattern=".|\n">
224 <token type="LiteralStringDouble"/>
225 </rule>
226 </state>
227 <state name="istring">
228 <rule pattern="&#39;&#39;\$">
229 <token type="LiteralStringEscape"/>
230 </rule>
231 <rule pattern="&#39;&#39;&#39;">
232 <token type="LiteralStringEscape"/>
233 </rule>
234 <rule pattern="&#39;&#39;\\.">
235 <token type="LiteralStringEscape"/>
236 </rule>
237 <rule pattern="&#39;&#39;">
238 <token type="LiteralStringSingle"/>
239 <pop depth="1"/>
240 </rule>
241 <rule pattern="\${">
242 <token type="LiteralStringInterpol"/>
243 <push state="interpol"/>
244 </rule>
245 <rule pattern="\$.">
246 <token type="LiteralStringSingle"/>
247 </rule>
248 <rule pattern=".|\n">
249 <token type="LiteralStringSingle"/>
250 </rule>
251 </state>
252 <state name="id">
253 <rule pattern="[a-zA-Z_][a-zA-Z0-9_&#39;-]*">
254 <token type="Name"/>
255 </rule>
256 </state>
257 </rules>
258</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml
new file mode 100644
index 0000000..0dc9328
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/objective-c.xml
@@ -0,0 +1,510 @@
1<lexer>
2 <config>
3 <name>Objective-C</name>
4 <alias>objective-c</alias>
5 <alias>objectivec</alias>
6 <alias>obj-c</alias>
7 <alias>objc</alias>
8 <filename>*.m</filename>
9 <filename>*.h</filename>
10 <mime_type>text/x-objective-c</mime_type>
11 </config>
12 <rules>
13 <state name="macro">
14 <rule pattern="(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)">
15 <bygroups>
16 <token type="CommentPreproc"/>
17 <token type="Text"/>
18 <token type="CommentPreprocFile"/>
19 </bygroups>
20 </rule>
21 <rule pattern="[^/\n]+">
22 <token type="CommentPreproc"/>
23 </rule>
24 <rule pattern="/[*](.|\n)*?[*]/">
25 <token type="CommentMultiline"/>
26 </rule>
27 <rule pattern="//.*?\n">
28 <token type="CommentSingle"/>
29 <pop depth="1"/>
30 </rule>
31 <rule pattern="/">
32 <token type="CommentPreproc"/>
33 </rule>
34 <rule pattern="(?&lt;=\\)\n">
35 <token type="CommentPreproc"/>
36 </rule>
37 <rule pattern="\n">
38 <token type="CommentPreproc"/>
39 <pop depth="1"/>
40 </rule>
41 </state>
42 <state name="literal_number">
43 <rule pattern="\(">
44 <token type="Punctuation"/>
45 <push state="literal_number_inner"/>
46 </rule>
47 <rule pattern="\)">
48 <token type="Literal"/>
49 <pop depth="1"/>
50 </rule>
51 <rule>
52 <include state="statement"/>
53 </rule>
54 </state>
55 <state name="if0">
56 <rule pattern="^\s*#if.*?(?&lt;!\\)\n">
57 <token type="CommentPreproc"/>
58 <push/>
59 </rule>
60 <rule pattern="^\s*#el(?:se|if).*\n">
61 <token type="CommentPreproc"/>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern="^\s*#endif.*?(?&lt;!\\)\n">
65 <token type="CommentPreproc"/>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern=".*?\n">
69 <token type="Comment"/>
70 </rule>
71 </state>
72 <state name="root">
73 <rule pattern="^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)">
74 <bygroups>
75 <token type="Punctuation"/>
76 <token type="Text"/>
77 <usingself state="root"/>
78 <token type="Text"/>
79 <token type="NameFunction"/>
80 </bygroups>
81 <push state="method"/>
82 </rule>
83 <rule>
84 <include state="whitespace"/>
85 </rule>
86 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)">
87 <bygroups>
88 <usingself state="root"/>
89 <token type="NameFunction"/>
90 <usingself state="root"/>
91 <usingself state="root"/>
92 <token type="Punctuation"/>
93 </bygroups>
94 <push state="function"/>
95 </rule>
96 <rule pattern="((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)">
97 <bygroups>
98 <usingself state="root"/>
99 <token type="NameFunction"/>
100 <usingself state="root"/>
101 <usingself state="root"/>
102 <token type="Punctuation"/>
103 </bygroups>
104 </rule>
105 <rule>
106 <push state="statement"/>
107 </rule>
108 </state>
109 <state name="statements">
110 <rule pattern="@&#34;">
111 <token type="LiteralString"/>
112 <push state="string"/>
113 </rule>
114 <rule pattern="@(YES|NO)">
115 <token type="LiteralNumber"/>
116 </rule>
117 <rule pattern="@&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
118 <token type="LiteralStringChar"/>
119 </rule>
120 <rule pattern="@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
121 <token type="LiteralNumberFloat"/>
122 </rule>
123 <rule pattern="@(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
124 <token type="LiteralNumberFloat"/>
125 </rule>
126 <rule pattern="@0x[0-9a-fA-F]+[Ll]?">
127 <token type="LiteralNumberHex"/>
128 </rule>
129 <rule pattern="@0[0-7]+[Ll]?">
130 <token type="LiteralNumberOct"/>
131 </rule>
132 <rule pattern="@\d+[Ll]?">
133 <token type="LiteralNumberInteger"/>
134 </rule>
135 <rule pattern="@\(">
136 <token type="Literal"/>
137 <push state="literal_number"/>
138 </rule>
139 <rule pattern="@\[">
140 <token type="Literal"/>
141 <push state="literal_array"/>
142 </rule>
143 <rule pattern="@\{">
144 <token type="Literal"/>
145 <push state="literal_dictionary"/>
146 </rule>
147 <rule pattern="(unsafe_unretained|__bridge_transfer|@autoreleasepool|__autoreleasing|@synchronized|@synthesize|@protected|@selector|@required|@optional|readwrite|@property|nonatomic|@finally|__bridge|@dynamic|__strong|readonly|@private|__block|@public|@encode|release|assign|retain|atomic|@throw|@catch|__weak|setter|getter|typeof|strong|inout|class|@try|@end|weak|copy|out|in)\b">
148 <token type="Keyword"/>
149 </rule>
150 <rule pattern="(instancetype|IBOutlet|IBAction|unichar|Class|BOOL|IMP|SEL|id)\b">
151 <token type="KeywordType"/>
152 </rule>
153 <rule pattern="@(true|false|YES|NO)\n">
154 <token type="NameBuiltin"/>
155 </rule>
156 <rule pattern="(YES|NO|nil|self|super)\b">
157 <token type="NameBuiltin"/>
158 </rule>
159 <rule pattern="(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\b">
160 <token type="KeywordType"/>
161 </rule>
162 <rule pattern="(TRUE|FALSE)\b">
163 <token type="NameBuiltin"/>
164 </rule>
165 <rule pattern="(@interface|@implementation)(\s+)">
166 <bygroups>
167 <token type="Keyword"/>
168 <token type="Text"/>
169 </bygroups>
170 <push state="#pop" state="oc_classname"/>
171 </rule>
172 <rule pattern="(@class|@protocol)(\s+)">
173 <bygroups>
174 <token type="Keyword"/>
175 <token type="Text"/>
176 </bygroups>
177 <push state="#pop" state="oc_forward_classname"/>
178 </rule>
179 <rule pattern="@">
180 <token type="Punctuation"/>
181 </rule>
182 <rule pattern="(L?)(&#34;)">
183 <bygroups>
184 <token type="LiteralStringAffix"/>
185 <token type="LiteralString"/>
186 </bygroups>
187 <push state="string"/>
188 </rule>
189 <rule pattern="(L?)(&#39;)(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])(&#39;)">
190 <bygroups>
191 <token type="LiteralStringAffix"/>
192 <token type="LiteralStringChar"/>
193 <token type="LiteralStringChar"/>
194 <token type="LiteralStringChar"/>
195 </bygroups>
196 </rule>
197 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
198 <token type="LiteralNumberFloat"/>
199 </rule>
200 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
201 <token type="LiteralNumberFloat"/>
202 </rule>
203 <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
204 <token type="LiteralNumberHex"/>
205 </rule>
206 <rule pattern="0[0-7]+[LlUu]*">
207 <token type="LiteralNumberOct"/>
208 </rule>
209 <rule pattern="\d+[LlUu]*">
210 <token type="LiteralNumberInteger"/>
211 </rule>
212 <rule pattern="\*/">
213 <token type="Error"/>
214 </rule>
215 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
216 <token type="Operator"/>
217 </rule>
218 <rule pattern="[()\[\],.]">
219 <token type="Punctuation"/>
220 </rule>
221 <rule pattern="(restricted|volatile|continue|register|default|typedef|struct|extern|switch|sizeof|static|return|union|while|const|break|goto|enum|else|case|auto|for|asm|if|do)\b">
222 <token type="Keyword"/>
223 </rule>
224 <rule pattern="(bool|int|long|float|short|double|char|unsigned|signed|void)\b">
225 <token type="KeywordType"/>
226 </rule>
227 <rule pattern="(typename|__inline|restrict|_inline|thread|inline|naked)\b">
228 <token type="KeywordReserved"/>
229 </rule>
230 <rule pattern="(__m(128i|128d|128|64))\b">
231 <token type="KeywordReserved"/>
232 </rule>
233 <rule pattern="__(forceinline|identifier|unaligned|declspec|fastcall|finally|stdcall|wchar_t|assume|except|int32|cdecl|int16|leave|based|raise|int64|noop|int8|w64|try|asm)\b">
234 <token type="KeywordReserved"/>
235 </rule>
236 <rule pattern="(true|false|NULL)\b">
237 <token type="NameBuiltin"/>
238 </rule>
239 <rule pattern="([a-zA-Z_]\w*)(\s*)(:)(?!:)">
240 <bygroups>
241 <token type="NameLabel"/>
242 <token type="Text"/>
243 <token type="Punctuation"/>
244 </bygroups>
245 </rule>
246 <rule pattern="[a-zA-Z_]\w*">
247 <token type="Name"/>
248 </rule>
249 </state>
250 <state name="method">
251 <rule>
252 <include state="whitespace"/>
253 </rule>
254 <rule pattern=",">
255 <token type="Punctuation"/>
256 </rule>
257 <rule pattern="\.\.\.">
258 <token type="Punctuation"/>
259 </rule>
260 <rule pattern="(\(.*?\))(\s*)([a-zA-Z$_][\w$]*)">
261 <bygroups>
262 <usingself state="root"/>
263 <token type="Text"/>
264 <token type="NameVariable"/>
265 </bygroups>
266 </rule>
267 <rule pattern="[a-zA-Z$_][\w$]*:">
268 <token type="NameFunction"/>
269 </rule>
270 <rule pattern=";">
271 <token type="Punctuation"/>
272 <pop depth="1"/>
273 </rule>
274 <rule pattern="\{">
275 <token type="Punctuation"/>
276 <push state="function"/>
277 </rule>
278 <rule>
279 <pop depth="1"/>
280 </rule>
281 </state>
282 <state name="literal_array">
283 <rule pattern="\[">
284 <token type="Punctuation"/>
285 <push state="literal_array_inner"/>
286 </rule>
287 <rule pattern="\]">
288 <token type="Literal"/>
289 <pop depth="1"/>
290 </rule>
291 <rule>
292 <include state="statement"/>
293 </rule>
294 </state>
295 <state name="oc_classname">
296 <rule pattern="([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)">
297 <bygroups>
298 <token type="NameClass"/>
299 <token type="Text"/>
300 <token type="NameClass"/>
301 <token type="Text"/>
302 <token type="Punctuation"/>
303 </bygroups>
304 <push state="#pop" state="oc_ivars"/>
305 </rule>
306 <rule pattern="([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?">
307 <bygroups>
308 <token type="NameClass"/>
309 <token type="Text"/>
310 <token type="NameClass"/>
311 </bygroups>
312 <pop depth="1"/>
313 </rule>
314 <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)">
315 <bygroups>
316 <token type="NameClass"/>
317 <token type="Text"/>
318 <token type="NameLabel"/>
319 <token type="Text"/>
320 <token type="Punctuation"/>
321 </bygroups>
322 <push state="#pop" state="oc_ivars"/>
323 </rule>
324 <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))">
325 <bygroups>
326 <token type="NameClass"/>
327 <token type="Text"/>
328 <token type="NameLabel"/>
329 </bygroups>
330 <pop depth="1"/>
331 </rule>
332 <rule pattern="([a-zA-Z$_][\w$]*)(\s*)(\{)">
333 <bygroups>
334 <token type="NameClass"/>
335 <token type="Text"/>
336 <token type="Punctuation"/>
337 </bygroups>
338 <push state="#pop" state="oc_ivars"/>
339 </rule>
340 <rule pattern="([a-zA-Z$_][\w$]*)">
341 <token type="NameClass"/>
342 <pop depth="1"/>
343 </rule>
344 </state>
345 <state name="function">
346 <rule>
347 <include state="whitespace"/>
348 </rule>
349 <rule>
350 <include state="statements"/>
351 </rule>
352 <rule pattern=";">
353 <token type="Punctuation"/>
354 </rule>
355 <rule pattern="\{">
356 <token type="Punctuation"/>
357 <push/>
358 </rule>
359 <rule pattern="\}">
360 <token type="Punctuation"/>
361 <pop depth="1"/>
362 </rule>
363 </state>
364 <state name="whitespace">
365 <rule pattern="^#if\s+0">
366 <token type="CommentPreproc"/>
367 <push state="if0"/>
368 </rule>
369 <rule pattern="^#">
370 <token type="CommentPreproc"/>
371 <push state="macro"/>
372 </rule>
373 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)">
374 <bygroups>
375 <usingself state="root"/>
376 <token type="CommentPreproc"/>
377 </bygroups>
378 <push state="if0"/>
379 </rule>
380 <rule pattern="^(\s*(?:/[*].*?[*]/\s*)?)(#)">
381 <bygroups>
382 <usingself state="root"/>
383 <token type="CommentPreproc"/>
384 </bygroups>
385 <push state="macro"/>
386 </rule>
387 <rule pattern="\n">
388 <token type="Text"/>
389 </rule>
390 <rule pattern="\s+">
391 <token type="Text"/>
392 </rule>
393 <rule pattern="\\\n">
394 <token type="Text"/>
395 </rule>
396 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
397 <token type="CommentSingle"/>
398 </rule>
399 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
400 <token type="CommentMultiline"/>
401 </rule>
402 <rule pattern="/(\\\n)?[*][\w\W]*">
403 <token type="CommentMultiline"/>
404 </rule>
405 </state>
406 <state name="literal_number_inner">
407 <rule pattern="\(">
408 <token type="Punctuation"/>
409 <push/>
410 </rule>
411 <rule pattern="\)">
412 <token type="Punctuation"/>
413 <pop depth="1"/>
414 </rule>
415 <rule>
416 <include state="statement"/>
417 </rule>
418 </state>
419 <state name="statement">
420 <rule>
421 <include state="whitespace"/>
422 </rule>
423 <rule>
424 <include state="statements"/>
425 </rule>
426 <rule pattern="[{}]">
427 <token type="Punctuation"/>
428 </rule>
429 <rule pattern=";">
430 <token type="Punctuation"/>
431 <pop depth="1"/>
432 </rule>
433 </state>
434 <state name="oc_forward_classname">
435 <rule pattern="([a-zA-Z$_][\w$]*)(\s*,\s*)">
436 <bygroups>
437 <token type="NameClass"/>
438 <token type="Text"/>
439 </bygroups>
440 <push state="oc_forward_classname"/>
441 </rule>
442 <rule pattern="([a-zA-Z$_][\w$]*)(\s*;?)">
443 <bygroups>
444 <token type="NameClass"/>
445 <token type="Text"/>
446 </bygroups>
447 <pop depth="1"/>
448 </rule>
449 </state>
450 <state name="literal_array_inner">
451 <rule pattern="\[">
452 <token type="Punctuation"/>
453 <push/>
454 </rule>
455 <rule pattern="\]">
456 <token type="Punctuation"/>
457 <pop depth="1"/>
458 </rule>
459 <rule>
460 <include state="statement"/>
461 </rule>
462 </state>
463 <state name="literal_dictionary">
464 <rule pattern="\}">
465 <token type="Literal"/>
466 <pop depth="1"/>
467 </rule>
468 <rule>
469 <include state="statement"/>
470 </rule>
471 </state>
472 <state name="oc_ivars">
473 <rule>
474 <include state="whitespace"/>
475 </rule>
476 <rule>
477 <include state="statements"/>
478 </rule>
479 <rule pattern=";">
480 <token type="Punctuation"/>
481 </rule>
482 <rule pattern="\{">
483 <token type="Punctuation"/>
484 <push/>
485 </rule>
486 <rule pattern="\}">
487 <token type="Punctuation"/>
488 <pop depth="1"/>
489 </rule>
490 </state>
491 <state name="string">
492 <rule pattern="&#34;">
493 <token type="LiteralString"/>
494 <pop depth="1"/>
495 </rule>
496 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})">
497 <token type="LiteralStringEscape"/>
498 </rule>
499 <rule pattern="[^\\&#34;\n]+">
500 <token type="LiteralString"/>
501 </rule>
502 <rule pattern="\\\n">
503 <token type="LiteralString"/>
504 </rule>
505 <rule pattern="\\">
506 <token type="LiteralString"/>
507 </rule>
508 </state>
509 </rules>
510</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml
new file mode 100644
index 0000000..77f67ac
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ocaml.xml
@@ -0,0 +1,145 @@
1<lexer>
2 <config>
3 <name>OCaml</name>
4 <alias>ocaml</alias>
5 <filename>*.ml</filename>
6 <filename>*.mli</filename>
7 <filename>*.mll</filename>
8 <filename>*.mly</filename>
9 <mime_type>text/x-ocaml</mime_type>
10 </config>
11 <rules>
12 <state name="escape-sequence">
13 <rule pattern="\\[\\&#34;\&#39;ntbr]">
14 <token type="LiteralStringEscape"/>
15 </rule>
16 <rule pattern="\\[0-9]{3}">
17 <token type="LiteralStringEscape"/>
18 </rule>
19 <rule pattern="\\x[0-9a-fA-F]{2}">
20 <token type="LiteralStringEscape"/>
21 </rule>
22 </state>
23 <state name="root">
24 <rule pattern="\s+">
25 <token type="Text"/>
26 </rule>
27 <rule pattern="false|true|\(\)|\[\]">
28 <token type="NameBuiltinPseudo"/>
29 </rule>
30 <rule pattern="\b([A-Z][\w\&#39;]*)(?=\s*\.)">
31 <token type="NameNamespace"/>
32 <push state="dotted"/>
33 </rule>
34 <rule pattern="\b([A-Z][\w\&#39;]*)">
35 <token type="NameClass"/>
36 </rule>
37 <rule pattern="\(\*(?![)])">
38 <token type="Comment"/>
39 <push state="comment"/>
40 </rule>
41 <rule pattern="\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|value|val|virtual|when|while|with)\b">
42 <token type="Keyword"/>
43 </rule>
44 <rule pattern="(~|\}|\|]|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.|\.|-&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
45 <token type="Operator"/>
46 </rule>
47 <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="\b(and|asr|land|lor|lsl|lxor|mod|or)\b">
51 <token type="OperatorWord"/>
52 </rule>
53 <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
54 <token type="KeywordType"/>
55 </rule>
56 <rule pattern="[^\W\d][\w&#39;]*">
57 <token type="Name"/>
58 </rule>
59 <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
60 <token type="LiteralNumberFloat"/>
61 </rule>
62 <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
63 <token type="LiteralNumberHex"/>
64 </rule>
65 <rule pattern="0[oO][0-7][0-7_]*">
66 <token type="LiteralNumberOct"/>
67 </rule>
68 <rule pattern="0[bB][01][01_]*">
69 <token type="LiteralNumberBin"/>
70 </rule>
71 <rule pattern="\d[\d_]*">
72 <token type="LiteralNumberInteger"/>
73 </rule>
74 <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
75 <token type="LiteralStringChar"/>
76 </rule>
77 <rule pattern="&#39;.&#39;">
78 <token type="LiteralStringChar"/>
79 </rule>
80 <rule pattern="&#39;">
81 <token type="Keyword"/>
82 </rule>
83 <rule pattern="&#34;">
84 <token type="LiteralStringDouble"/>
85 <push state="string"/>
86 </rule>
87 <rule pattern="[~?][a-z][\w\&#39;]*:">
88 <token type="NameVariable"/>
89 </rule>
90 </state>
91 <state name="comment">
92 <rule pattern="[^(*)]+">
93 <token type="Comment"/>
94 </rule>
95 <rule pattern="\(\*">
96 <token type="Comment"/>
97 <push/>
98 </rule>
99 <rule pattern="\*\)">
100 <token type="Comment"/>
101 <pop depth="1"/>
102 </rule>
103 <rule pattern="[(*)]">
104 <token type="Comment"/>
105 </rule>
106 </state>
107 <state name="string">
108 <rule pattern="[^\\&#34;]+">
109 <token type="LiteralStringDouble"/>
110 </rule>
111 <rule>
112 <include state="escape-sequence"/>
113 </rule>
114 <rule pattern="\\\n">
115 <token type="LiteralStringDouble"/>
116 </rule>
117 <rule pattern="&#34;">
118 <token type="LiteralStringDouble"/>
119 <pop depth="1"/>
120 </rule>
121 </state>
122 <state name="dotted">
123 <rule pattern="\s+">
124 <token type="Text"/>
125 </rule>
126 <rule pattern="\.">
127 <token type="Punctuation"/>
128 </rule>
129 <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
130 <token type="NameNamespace"/>
131 </rule>
132 <rule pattern="[A-Z][\w\&#39;]*">
133 <token type="NameClass"/>
134 <pop depth="1"/>
135 </rule>
136 <rule pattern="[a-z_][\w\&#39;]*">
137 <token type="Name"/>
138 <pop depth="1"/>
139 </rule>
140 <rule>
141 <pop depth="1"/>
142 </rule>
143 </state>
144 </rules>
145</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml
new file mode 100644
index 0000000..0515d28
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/octave.xml
@@ -0,0 +1,101 @@
1<lexer>
2 <config>
3 <name>Octave</name>
4 <alias>octave</alias>
5 <filename>*.m</filename>
6 <mime_type>text/octave</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="[%#].*$">
11 <token type="Comment"/>
12 </rule>
13 <rule pattern="^\s*function">
14 <token type="Keyword"/>
15 <push state="deffunc"/>
16 </rule>
17 <rule pattern="(unwind_protect_cleanup|end_unwind_protect|unwind_protect|end_try_catch|endproperties|endclassdef|endfunction|persistent|properties|endmethods|otherwise|endevents|endswitch|__FILE__|continue|classdef|__LINE__|endwhile|function|methods|elseif|return|static|events|global|endfor|switch|until|endif|while|catch|break|case|else|set|end|try|for|get|do|if)\b">
18 <token type="Keyword"/>
19 </rule>
20 <rule pattern="(history_timestamp_format_string|suppress_verbose_help_message|is_rooted_relative_filename|chisquare_test_independence|available_graphics_toolkits|print_struct_array_contents|re_read_readline_init_file|ignore_function_time_stamp|chisquare_test_homogeneity|sigterm_dumps_octave_core|save_header_format_string|sighup_dumps_octave_core|octave_core_file_options|confirm_recursive_rmdir|crash_dumps_octave_core|program_invocation_name|read_readline_init_file|echo_executing_commands|kolmogorov_smirnov_test|page_output_immediately|completion_append_char|output_max_field_width|kolmogorov_smirnov_cdf|print_empty_dimensions|octave_core_file_limit|struct_levels_to_print|make_absolute_filename|octave_core_file_name|default_save_options|isequalwithequalnans|is_absolute_filename|max_recursion_depth|native_float_format|kruskal_wallis_test|undo_string_escapes|commutation_matrix|fixed_point_format|debug_on_interrupt|completion_matches|duplication_matrix|sparse_auto_mutate|waitforbuttonpress|restoredefaultpath|is_duplicate_entry|page_screen_output|octave_config_info|do_string_escapes|f_test_regression|t_test_regression|command_line_path|debug_on_warning|is_valid_file_id|string_fill_char|find_dir_in_path|graphics_toolkit|mouse_wheel_zoom|file_in_loadpath|compare_versions|sylvester_matrix|silent_functions|output_precision|makeinfo_program|whos_line_format|split_long_rows|history_control|regexptranslate|validatestring|debug_on_error|hotelling_test|save_precision|gnuplot_binary|doc_cache_file|autoreg_matrix|saving_history|durbinlevinson|stdnormal_pdf|beep_on_error|bartlett_test|empirical_inv|wilcoxon_test|empirical_cdf|stdnormal_cdf|namelengthmax|daspk_options|lsode_options|empirical_pdf|empirical_rnd|dasrt_options|dassl_options|stdnormal_inv|stdnormal_rnd|discrete_rnd|logistic_cdf|discrete_cdf|logistic_inv|program_name|logistic_pdf|is_leap_year|spectral_adf|logistic_rnd|rectangle_sw|quad_options|mcnemar_test|file_in_path|info_program|rectangle_lw|spectral_xdf|tilde_expand|history_file|history_size|discrete_inv|discrete_pdf|laplace_cdf|refreshdata|common_size|dellistener|ishermitian|mahalanobis|print_usage|laplace_inv|parseparams|triangle_lw|laplace_rnd|triangle_sw|addproperty|semilogyerr|matrix_type|addlistener|orderfields|issymmetric|list_primes|isdebugmode|laplace_pdf|semilogxerr|periodogram|ezcontourf|fileattrib|freqz_plot|polyreduce|treelayout|inferiorto|size_equal|genvarname|onenormest|svd_driver|divergence|filemarker|fieldnames|cholupdate|cholinsert|choldelete|cellslices|errno_list|triplequad|ls_command|accumarray|cauchy_cdf|yulewalker|plotmatrix|polyaffine|cauchy_inv|studentize|ctranspose|nargoutchk|ishghandle|isdefinite|matlabroot|cauchy_rnd|cauchy_pdf|statistics|welch_test|superiorto|iscomplex|run_count|sprandsym|circshift|mfilename|fileparts|intersect|inputname|factorial|inpolygon|wilkinson|ifftshift|structfun|lsqnonneg|arch_test|addtodate|substruct|localtime|yes_or_no|vectorize|cholshift|lasterror|polyderiv|transpose|fractdiff|mislocked|playaudio|isvarname|delaunayn|convhulln|loglogerr|getrusage|griddatan|saveaudio|swapbytes|isnumeric|synthesis|functions|ellipsoid|subsindex|pqpnonneg|shell_cmd|sign_test|islogical|isstrprop|isinteger|info_file|regexprep|spconvert|spaugment|etreeplot|loadaudio|iscellstr|ezcontour|shiftdim|isglobal|readlink|treeplot|ishandle|sombrero|repelems|ismethod|fullfile|isargout|sortrows|ipermute|skewness|endgrent|errorbar|endpwent|polyvalm|sinewave|setfield|powerset|dbstatus|setgrent|sinetone|ismatrix|gui_mode|kurtosis|setaudio|toeplitz|spearman|textscan|textread|tempname|getgrent|issparse|semilogy|getgrgid|getgrnam|getpwent|optimset|strftime|optimget|semilogx|isvector|getfield|strptime|getpwnam|dsearchn|setpwent|specular|savepath|dlmwrite|subsasgn|gradient|symbfact|planerot|allchild|griddata|getpwuid|typecast|linkprop|urlwrite|runtests|diffpara|isobject|issorted|isstruct|keyboard|delaunay|typeinfo|run_test|datetick|surfnorm|strncmpi|nonzeros|lastwarn|cylinder|bincoeff|cumtrapz|hadamard|randperm|csvwrite|cplxpair|untabify|warranty|realsqrt|polyarea|gammainc|logspace|cor_test|corrcoef|issquare|copyfile|isscalar|convhull|var_test|poisscdf|accumdim|contrast|contourf|contourc|linspace|ismember|ancestor|nchoosek|arch_fit|arch_rnd|legendre|computer|arma_rnd|arrayfun|subspace|isfinite|luupdate|qrupdate|tsearchn|strtrunc|isletter|colormap|poissinv|qrinsert|colorbar|voronoin|poisspdf|mrdivide|interpft|closereq|poissrnd|strsplit|wavwrite|bicgstab|mldivide|bitshift|isxdigit|autoload|strmatch|assignin|movefile|celldisp|fftshift|blackman|meshgrid|rundemos|argnames|qrdelete|brighten|calendar|isfigure|bartlett|spparms|spstats|weekday|blkdiag|sprandn|binornd|binopdf|binoinv|binocdf|bicubic|betarnd|betapdf|wavread|betainv|cloglog|betacdf|whitebg|wienrnd|nargchk|colperm|voronoi|nbincdf|nbininv|nbinpdf|asctime|compass|nbinrnd|version|condest|contour|balance|besselh|besseli|besselj|besselk|bessely|lookfor|bitpack|newplot|builtin|ccolamd|cellfun|lognrnd|warning|waitpid|lognpdf|logninv|cstrcat|csvread|vertcat|logncdf|spinmap|unifrnd|unifpdf|cholinv|interpn|datenum|datestr|normcdf|datevec|dblquad|unifinv|deblank|normest|norminv|toupper|normpdf|unifcdf|detrend|tmpfile|diffuse|unidrnd|normrnd|nthroot|symlink|spencer|display|subsref|strvcat|unidpdf|dsearch|strncmp|strcmpi|squeeze|sprintf|dbclear|sizemax|spdiags|dbstack|pathdef|rmfield|unidinv|rethrow|example|reshape|dbwhere|unidcdf|realmin|realmax|readdir|rdivide|loadobj|ezmeshc|dlmread|ezpolar|permute|ezsurfc|pathsep|nfields|nargout|munlock|feather|fftconv|fftfilt|mkstemp|license|shading|methods|qrshift|findall|findobj|findstr|trisurf|triplot|flipdim|logical|ldivide|lasterr|trimesh|regexpi|polyfit|isindex|isfloat|isfield|isempty|polyint|polyout|polyval|postpad|horzcat|spalloc|setdiff|getppid|ppjumps|getpgrp|geteuid|getegid|genpath|strfind|kendall|frewind|freport|scatter|tempdir|fprintf|formula|fnmatch|filesep|rainbow|saveobj|tsearch|urlread|betainc|reallog|surface|realpow|hamming|gammaln|hanning|hggroup|isalnum|isprime|isalpha|isascii|iscntrl|drawnow|isdigit|subplot|isgraph|rectint|hygecdf|hygeinv|hygepdf|hygernd|idivide|cumprod|cputime|imagesc|imfinfo|strjust|complex|imwrite|strtrim|columns|islower|isprint|ispunct|polygcd|cellstr|isspace|isupper|strread|refresh|residue|toascii|isequal|tolower|addpath|csymamd|invhilb|strtok|imshow|imread|substr|strchr|summer|isprop|hidden|hankel|gunzip|symvar|isunix|ginput|geornd|strcat|geopdf|geoinv|geocdf|gamrnd|krylov|gampdf|gaminv|gamcdf|fsolve|flipud|legend|fliplr|figure|t_test|factor|ezsurf|ezplot|ezmesh|exprnd|exppdf|expinv|expcdf|eomday|loglog|delete|deconv|unique|unmkpp|unpack|unwrap|u_test|copper|vander|compan|clabel|wblcdf|manova|center|wblinv|wblpdf|meansq|median|stairs|wblrnd|spring|blanks|bitset|mexext|bitget|sprand|spones|moment|bitcmp|mpoles|spline|binary|autumn|winter|assert|xlabel|ylabel|zlabel|z_test|ndgrid|bsxfun|usleep|unlink|uminus|colamd|colloc|tmpnam|cummax|sphere|system|cummin|struct|strcmp|stdout|stderr|sscanf|source|orient|sizeof|dbdown|pareto|single|pascal|setenv|dbstop|rmpath|dbtype|pcolor|resize|rename|rehash|dmperm|putenv|filter|printf|pclose|givens|gmtime|rotdim|plotyy|lookup|nargin|mtimes|mpower|mkfifo|setxor|mktime|length|regexp|isreal|isieee|ischar|iscell|isbool|intmin|intmax|inline|ifelse|sparse|getuid|getpid|ppplot|getgid|getenv|prepad|primes|sprank|fwrite|fskipl|probit|fscanf|qqplot|quadcc|quadgk|strrep|symamd|quiver|qzhess|symrcm|fflush|ferror|saveas|fclose|fclear|betaln|erfinv|finite|record|evalin|double|cumsum|bitxor|bitmax|bitand|repmat|atexit|ribbon|rindex|lgamma|roundb|rosser|isnull|untar|ftell|hypot|roots|schur|ranks|input|range|randi|quadv|quadl|kbhit|rcond|prism|print|ppval|ppint|ppder|fseek|randp|polar|shift|randn|randg|rande|fread|lstat|perms|fputs|slice|peaks|merge|pchip|round|patch|sqrtm|minus|mkdir|ocean|speed|fopen|speye|spfun|lower|fgets|mlock|ndims|luinc|fgetl|meshz|meshc|lsode|feval|bitor|numel|fdisp|ifftn|magic|nzmax|logit|fcntl|pause|acosh|popen|power|ismac|isdir|class|isnan|acoth|etree|image|hurst|acsch|housh|isinf|angle|histc|reset|rmdir|scanf|asech|surfc|surfl|gtext|sleep|dassl|stdin|gplot|dasrt|table|daspk|sumsq|asinh|times|convn|umask|uname|uplus|upper|atanh|title|errno|zeros|trace|trapz|fzero|false|close|freqz|acosd|fplot|acotd|acscd|anova|ascii|asecd|asind|atand|white|caxis|erfcx|etime|error|exist|clock|colon|gamma|comet|union|ctime|usage|floor|cross|unzip|index|cotd|fmod|cosd|cscd|cool|unix|conv|vech|exec|cond|view|curl|deal|demo|eval|expm|erfc|type|cast|csch|bone|beep|what|fail|barh|coth|axis|axes|fcdf|fill|xlim|trnd|triu|cosh|area|finv|airy|conj|flag|fpdf|tril|whos|ceil|load|frnd|cbrt|exit|imag|beta|tpdf|chol|tinv|path|gcbf|gcbo|text|test|true|atan|disp|glpk|tcdf|diff|tand|asin|diag|gray|grid|stat|svds|size|gzip|surf|rows|hilb|dbup|hist|asec|rats|quit|hold|isna|eigs|acsc|puts|pack|info|fftn|fftw|prod|find|full|acot|ispc|char|plus|pipe|stft|stem|acos|line|ones|logm|hess|ifft|cell|mean|menu|feof|kron|norm|argv|mesh|time|mget|mkpp|mode|mput|news|null|real|pinv|fork|orth|sech|perl|sign|quad|link|sind|rand|sinc|pink|plot|poly|date|sinh|kill|secd|rank|sqrt|rose|home|sort|tanh|glob|rref|xor|get|all|and|run|tan|svd|rat|syl|min|max|pwd|sin|nnz|not|inv|pie|abs|var|pcr|gcd|fft|sec|eig|dot|arg|det|set|sum|tic|toc|vec|inf|Inf|eye|nan|NaN|who|amd|cos|zip|cot|bar|csc|box|erf|cgs|ols|clf|exp|ver|fix|cor|cov|cut|dir|dos|ftp|gca|any|eps|pcg|gcf|tar|gls|hot|clc|hsv|iqr|isa|jet|std|cat|sqp|lcm|spy|log|now|mod|cla|rem|lu|eq|ge|pi|or|ne|qp|qr|lt|qz|le|gt|e)\b">
21 <token type="NameBuiltin"/>
22 </rule>
23 <rule pattern="(OCTAVE_VERSION|WIFCONTINUED|WEXITSTATUS|WIFSIGNALED|OCTAVE_HOME|PAGER_FLAGS|IMAGE_PATH|WIFSTOPPED|WUNTRACED|WIFEXITED|WCOREDUMP|WCONTINUE|EXEC_PATH|S_ISSOCK|WTERMSIG|SEEK_CUR|SEEK_END|SEEK_SET|WSTOPSIG|S_ISFIFO|S_ISREG|S_ISLNK|S_ISCHR|S_ISBLK|WNOHANG|S_ISDIR|EDITOR|PAGER|SIG|NA|I)\b">
24 <token type="NameConstant"/>
25 </rule>
26 <rule pattern="-=|!=|!|/=|--">
27 <token type="Operator"/>
28 </rule>
29 <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
30 <token type="Operator"/>
31 </rule>
32 <rule pattern="\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*">
33 <token type="Operator"/>
34 </rule>
35 <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
36 <token type="Operator"/>
37 </rule>
38 <rule pattern="[\[\](){}:@.,]">
39 <token type="Punctuation"/>
40 </rule>
41 <rule pattern="=|:|;">
42 <token type="Punctuation"/>
43 </rule>
44 <rule pattern="&#34;[^&#34;]*&#34;">
45 <token type="LiteralString"/>
46 </rule>
47 <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
48 <token type="LiteralNumberFloat"/>
49 </rule>
50 <rule pattern="\d+[eEf][+-]?[0-9]+">
51 <token type="LiteralNumberFloat"/>
52 </rule>
53 <rule pattern="\d+">
54 <token type="LiteralNumberInteger"/>
55 </rule>
56 <rule pattern="(?&lt;=[\w)\].])\&#39;+">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="(?&lt;![\w)\].])\&#39;">
60 <token type="LiteralString"/>
61 <push state="string"/>
62 </rule>
63 <rule pattern="[a-zA-Z_]\w*">
64 <token type="Name"/>
65 </rule>
66 <rule pattern=".">
67 <token type="Text"/>
68 </rule>
69 </state>
70 <state name="string">
71 <rule pattern="[^&#39;]*&#39;">
72 <token type="LiteralString"/>
73 <pop depth="1"/>
74 </rule>
75 </state>
76 <state name="deffunc">
77 <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
78 <bygroups>
79 <token type="TextWhitespace"/>
80 <token type="Text"/>
81 <token type="TextWhitespace"/>
82 <token type="Punctuation"/>
83 <token type="TextWhitespace"/>
84 <token type="NameFunction"/>
85 <token type="Punctuation"/>
86 <token type="Text"/>
87 <token type="Punctuation"/>
88 <token type="TextWhitespace"/>
89 </bygroups>
90 <pop depth="1"/>
91 </rule>
92 <rule pattern="(\s*)([a-zA-Z_]\w*)">
93 <bygroups>
94 <token type="Text"/>
95 <token type="NameFunction"/>
96 </bygroups>
97 <pop depth="1"/>
98 </rule>
99 </state>
100 </rules>
101</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml
new file mode 100644
index 0000000..530bad7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/onesenterprise.xml
@@ -0,0 +1,92 @@
1<lexer>
2 <config>
3 <name>OnesEnterprise</name>
4 <alias>ones</alias>
5 <alias>onesenterprise</alias>
6 <alias>1S</alias>
7 <alias>1S:Enterprise</alias>
8 <filename>*.EPF</filename>
9 <filename>*.epf</filename>
10 <filename>*.ERF</filename>
11 <filename>*.erf</filename>
12 <mime_type>application/octet-stream</mime_type>
13 <case_insensitive>true</case_insensitive>
14 </config>
15 <rules>
16 <state name="root">
17 <rule pattern="\n">
18 <token type="Text"/>
19 </rule>
20 <rule pattern="\s+">
21 <token type="Text"/>
22 </rule>
23 <rule pattern="\\\n">
24 <token type="Text"/>
25 </rule>
26 <rule pattern="[^\S\n]+">
27 <token type="Text"/>
28 </rule>
29 <rule pattern="//(.*?)\n">
30 <token type="Comment"/>
31 </rule>
32 <rule pattern="(#область|#region|#конецобласти|#endregion|#если|#if|#иначе|#else|#конецесли|#endif).*">
33 <token type="CommentPreproc"/>
34 </rule>
35 <rule pattern="(&amp;наклиенте|&amp;atclient|&amp;насервере|&amp;atserver|&amp;насерверебезконтекста|&amp;atservernocontext|&amp;наклиентенасерверебезконтекста|&amp;atclientatservernocontext).*">
36 <token type="CommentPreproc"/>
37 </rule>
38 <rule pattern="(&gt;=|&lt;=|&lt;&gt;|\+|-|=|&gt;|&lt;|\*|/|%)">
39 <token type="Operator"/>
40 </rule>
41 <rule pattern="(;|,|\)|\(|\.)">
42 <token type="Punctuation"/>
43 </rule>
44 <rule pattern="(истина|ложь|или|false|true|не|and|not|и|or)\b">
45 <token type="Operator"/>
46 </rule>
47 <rule pattern="(иначеесли|конецесли|иначе|тогда|если|elsif|endif|else|then|if)\b">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="(конеццикла|каждого|цикл|пока|для|while|enddo|по|each|из|for|do|in|to)\b">
51 <token type="Operator"/>
52 </rule>
53 <rule pattern="(продолжить|прервать|возврат|перейти|continue|return|break|goto)\b">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(конецпроцедуры|конецфункции|процедура|функция|endprocedure|endfunction|procedure|function)\b">
57 <token type="Keyword"/>
58 </rule>
59 <rule pattern="(экспорт|новый|перем|знач|export|new|val|var)\b">
60 <token type="Keyword"/>
61 </rule>
62 <rule pattern="(вызватьисключение|конецпопытки|исключение|попытка|endtry|except|raise|try)\b">
63 <token type="Keyword"/>
64 </rule>
65 <rule pattern="(выполнить|вычислить|execute|eval)\b">
66 <token type="Keyword"/>
67 </rule>
68 <rule pattern="&#34;">
69 <token type="LiteralString"/>
70 <push state="string"/>
71 </rule>
72 <rule pattern="[_а-яА-Я0-9][а-яА-Я0-9]*">
73 <token type="Name"/>
74 </rule>
75 <rule pattern="[_\w][\w]*">
76 <token type="Name"/>
77 </rule>
78 </state>
79 <state name="string">
80 <rule pattern="&#34;&#34;">
81 <token type="LiteralString"/>
82 </rule>
83 <rule pattern="&#34;C?">
84 <token type="LiteralString"/>
85 <pop depth="1"/>
86 </rule>
87 <rule pattern="[^&#34;]+">
88 <token type="LiteralString"/>
89 </rule>
90 </state>
91 </rules>
92</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml
new file mode 100644
index 0000000..84d0fe1
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/openscad.xml
@@ -0,0 +1,96 @@
1<lexer>
2 <config>
3 <name>OpenSCAD</name>
4 <alias>openscad</alias>
5 <filename>*.scad</filename>
6 <mime_type>text/x-scad</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="[^\S\n]+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\n">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="//(\n|[\w\W]*?[^\\]\n)">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
20 <token type="CommentMultiline"/>
21 </rule>
22 <rule pattern="/(\\\n)?[*][\w\W]*">
23 <token type="CommentMultiline"/>
24 </rule>
25 <rule pattern="[{}\[\]\(\),;:]">
26 <token type="Punctuation"/>
27 </rule>
28 <rule pattern="[*!#%\-+=?/]">
29 <token type="Operator"/>
30 </rule>
31 <rule pattern="&lt;|&lt;=|==|!=|&gt;=|&gt;|&amp;&amp;|\|\|">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="\$(f[asn]|t|vp[rtd]|children)">
35 <token type="NameVariableMagic"/>
36 </rule>
37 <rule pattern="(undef|PI)\b">
38 <token type="KeywordConstant"/>
39 </rule>
40 <rule pattern="(use|include)((?:\s|\\\\s)+)">
41 <bygroups>
42 <token type="KeywordNamespace"/>
43 <token type="Text"/>
44 </bygroups>
45 <push state="includes"/>
46 </rule>
47 <rule pattern="(module)(\s*)([^\s\(]+)">
48 <bygroups>
49 <token type="KeywordNamespace"/>
50 <token type="Text"/>
51 <token type="NameNamespace"/>
52 </bygroups>
53 </rule>
54 <rule pattern="(function)(\s*)([^\s\(]+)">
55 <bygroups>
56 <token type="KeywordDeclaration"/>
57 <token type="Text"/>
58 <token type="NameFunction"/>
59 </bygroups>
60 </rule>
61 <rule pattern="\b(true|false)\b">
62 <token type="Literal"/>
63 </rule>
64 <rule pattern="\b(function|module|include|use|for|intersection_for|if|else|return)\b">
65 <token type="Keyword"/>
66 </rule>
67 <rule pattern="\b(circle|square|polygon|text|sphere|cube|cylinder|polyhedron|translate|rotate|scale|resize|mirror|multmatrix|color|offset|hull|minkowski|union|difference|intersection|abs|sign|sin|cos|tan|acos|asin|atan|atan2|floor|round|ceil|ln|log|pow|sqrt|exp|rands|min|max|concat|lookup|str|chr|search|version|version_num|norm|cross|parent_module|echo|import|import_dxf|dxf_linear_extrude|linear_extrude|rotate_extrude|surface|projection|render|dxf_cross|dxf_dim|let|assign|len)\b">
68 <token type="NameBuiltin"/>
69 </rule>
70 <rule pattern="\bchildren\b">
71 <token type="NameBuiltinPseudo"/>
72 </rule>
73 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
74 <token type="LiteralStringDouble"/>
75 </rule>
76 <rule pattern="-?\d+(\.\d+)?(e[+-]?\d+)?">
77 <token type="LiteralNumber"/>
78 </rule>
79 <rule pattern="[a-zA-Z_]\w*">
80 <token type="Name"/>
81 </rule>
82 </state>
83 <state name="includes">
84 <rule pattern="(&lt;)([^&gt;]*)(&gt;)">
85 <bygroups>
86 <token type="Punctuation"/>
87 <token type="CommentPreprocFile"/>
88 <token type="Punctuation"/>
89 </bygroups>
90 </rule>
91 <rule>
92 <pop depth="1"/>
93 </rule>
94 </state>
95 </rules>
96</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml
new file mode 100644
index 0000000..caf7236
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pacmanconf.xml
@@ -0,0 +1,37 @@
1<lexer>
2 <config>
3 <name>PacmanConf</name>
4 <alias>pacmanconf</alias>
5 <filename>pacman.conf</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="#.*$">
10 <token type="CommentSingle"/>
11 </rule>
12 <rule pattern="^\s*\[.*?\]\s*$">
13 <token type="Keyword"/>
14 </rule>
15 <rule pattern="(\w+)(\s*)(=)">
16 <bygroups>
17 <token type="NameAttribute"/>
18 <token type="Text"/>
19 <token type="Operator"/>
20 </bygroups>
21 </rule>
22 <rule pattern="^(\s*)(\w+)(\s*)$">
23 <bygroups>
24 <token type="Text"/>
25 <token type="NameAttribute"/>
26 <token type="Text"/>
27 </bygroups>
28 </rule>
29 <rule pattern="(\$repo|\$arch|%o|%u)\b">
30 <token type="NameVariable"/>
31 </rule>
32 <rule pattern=".">
33 <token type="Text"/>
34 </rule>
35 </state>
36 </rules>
37</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml
new file mode 100644
index 0000000..8ac02ab
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/perl.xml
@@ -0,0 +1,400 @@
1<lexer>
2 <config>
3 <name>Perl</name>
4 <alias>perl</alias>
5 <alias>pl</alias>
6 <filename>*.pl</filename>
7 <filename>*.pm</filename>
8 <filename>*.t</filename>
9 <mime_type>text/x-perl</mime_type>
10 <mime_type>application/x-perl</mime_type>
11 <dot_all>true</dot_all>
12 </config>
13 <rules>
14 <state name="root">
15 <rule pattern="\A\#!.+?$">
16 <token type="CommentHashbang"/>
17 </rule>
18 <rule pattern="\#.*?$">
19 <token type="CommentSingle"/>
20 </rule>
21 <rule pattern="^=[a-zA-Z0-9]+\s+.*?\n=cut">
22 <token type="CommentMultiline"/>
23 </rule>
24 <rule pattern="(continue|foreach|unless|return|elsif|CHECK|while|BEGIN|reset|print|until|next|else|INIT|then|last|redo|case|our|new|for|END|if|do|my)\b">
25 <token type="Keyword"/>
26 </rule>
27 <rule pattern="(format)(\s+)(\w+)(\s*)(=)(\s*\n)">
28 <bygroups>
29 <token type="Keyword"/>
30 <token type="Text"/>
31 <token type="Name"/>
32 <token type="Text"/>
33 <token type="Punctuation"/>
34 <token type="Text"/>
35 </bygroups>
36 <push state="format"/>
37 </rule>
38 <rule pattern="(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b">
39 <token type="OperatorWord"/>
40 </rule>
41 <rule pattern="s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*">
42 <token type="LiteralStringRegex"/>
43 </rule>
44 <rule pattern="s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*">
45 <token type="LiteralStringRegex"/>
46 </rule>
47 <rule pattern="s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*">
48 <token type="LiteralStringRegex"/>
49 </rule>
50 <rule pattern="s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*">
51 <token type="LiteralStringRegex"/>
52 </rule>
53 <rule pattern="s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*">
54 <token type="LiteralStringRegex"/>
55 </rule>
56 <rule pattern="s\{(\\\\|\\[^\\]|[^\\}])*\}\s*">
57 <token type="LiteralStringRegex"/>
58 <push state="balanced-regex"/>
59 </rule>
60 <rule pattern="s&lt;(\\\\|\\[^\\]|[^\\&gt;])*&gt;\s*">
61 <token type="LiteralStringRegex"/>
62 <push state="balanced-regex"/>
63 </rule>
64 <rule pattern="s\[(\\\\|\\[^\\]|[^\\\]])*\]\s*">
65 <token type="LiteralStringRegex"/>
66 <push state="balanced-regex"/>
67 </rule>
68 <rule pattern="s\((\\\\|\\[^\\]|[^\\)])*\)\s*">
69 <token type="LiteralStringRegex"/>
70 <push state="balanced-regex"/>
71 </rule>
72 <rule pattern="m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*">
73 <token type="LiteralStringRegex"/>
74 </rule>
75 <rule pattern="m(?=[/!\\{&lt;\[(@%$])">
76 <token type="LiteralStringRegex"/>
77 <push state="balanced-regex"/>
78 </rule>
79 <rule pattern="((?&lt;==~)|(?&lt;=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*">
80 <token type="LiteralStringRegex"/>
81 </rule>
82 <rule pattern="\s+">
83 <token type="Text"/>
84 </rule>
85 <rule pattern="(getprotobynumber|getprotobyname|getservbyport|getservbyname|gethostbyname|gethostbyaddr|getnetbyaddr|getnetbyname|setprotoent|setpriority|getsockname|getprotoent|getpriority|getpeername|endprotoent|setsockopt|endhostent|setservent|socketpair|getsockopt|endservent|sethostent|getservent|gethostent|getnetent|wantarray|localtime|quotemeta|setnetent|prototype|endnetent|rewinddir|endpwent|endgrent|getpwent|getpwnam|getgrgid|dbmclose|continue|closedir|shutdown|setpwent|shmwrite|syswrite|truncate|formline|setgrent|getgrent|readpipe|getgrnam|readlink|readline|getpwuid|getlogin|telldir|opendir|shmread|readdir|getpgrp|getppid|waitpid|binmode|reverse|sprintf|unshift|symlink|seekdir|sysopen|defined|dbmopen|sysread|sysseek|connect|lcfirst|ucfirst|setpgrp|syscall|import|chroot|system|gmtime|unlink|unpack|semget|semctl|select|msgrcv|length|printf|listen|scalar|caller|rindex|substr|splice|rename|msgctl|msgget|delete|msgsnd|exists|values|socket|fileno|format|accept|shmget|shmctl|ioctl|alarm|atan2|utime|untie|bless|chdir|chmod|undef|umask|chomp|times|close|crypt|srand|split|mkdir|sleep|lstat|study|rmdir|local|fcntl|flock|write|shift|index|semop|chown|tell|join|send|warn|kill|wait|grep|glob|bind|last|pack|getc|fork|link|seek|push|rand|read|exit|sort|exec|open|eval|sqrt|redo|stat|chop|next|each|dump|time|recv|tied|goto|keys|pipe|map|tie|cos|die|eof|pop|sin|pos|oct|ref|exp|int|ord|log|our|hex|abs|vec|chr|uc|tr|my|lc)\b">
86 <token type="NameBuiltin"/>
87 </rule>
88 <rule pattern="((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b">
89 <token type="NameBuiltinPseudo"/>
90 </rule>
91 <rule pattern="(&lt;&lt;)([\&#39;&#34;]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)">
92 <bygroups>
93 <token type="LiteralString"/>
94 <token type="LiteralString"/>
95 <token type="LiteralStringDelimiter"/>
96 <token type="LiteralString"/>
97 <token type="LiteralStringDelimiter"/>
98 <token type="Text"/>
99 </bygroups>
100 </rule>
101 <rule pattern="__END__">
102 <token type="CommentPreproc"/>
103 <push state="end-part"/>
104 </rule>
105 <rule pattern="\$\^[ADEFHILMOPSTWX]">
106 <token type="NameVariableGlobal"/>
107 </rule>
108 <rule pattern="\$[\\\&#34;\[\]&#39;&amp;`+*.,;=%~?@$!&lt;&gt;(^|/-](?!\w)">
109 <token type="NameVariableGlobal"/>
110 </rule>
111 <rule pattern="[$@%#]+">
112 <token type="NameVariable"/>
113 <push state="varname"/>
114 </rule>
115 <rule pattern="0_?[0-7]+(_[0-7]+)*">
116 <token type="LiteralNumberOct"/>
117 </rule>
118 <rule pattern="0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*">
119 <token type="LiteralNumberHex"/>
120 </rule>
121 <rule pattern="0b[01]+(_[01]+)*">
122 <token type="LiteralNumberBin"/>
123 </rule>
124 <rule pattern="(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?">
125 <token type="LiteralNumberFloat"/>
126 </rule>
127 <rule pattern="(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*">
128 <token type="LiteralNumberFloat"/>
129 </rule>
130 <rule pattern="\d+(_\d+)*">
131 <token type="LiteralNumberInteger"/>
132 </rule>
133 <rule pattern="&#39;(\\\\|\\[^\\]|[^&#39;\\])*&#39;">
134 <token type="LiteralString"/>
135 </rule>
136 <rule pattern="&#34;(\\\\|\\[^\\]|[^&#34;\\])*&#34;">
137 <token type="LiteralString"/>
138 </rule>
139 <rule pattern="`(\\\\|\\[^\\]|[^`\\])*`">
140 <token type="LiteralStringBacktick"/>
141 </rule>
142 <rule pattern="&lt;([^\s&gt;]+)&gt;">
143 <token type="LiteralStringRegex"/>
144 </rule>
145 <rule pattern="(q|qq|qw|qr|qx)\{">
146 <token type="LiteralStringOther"/>
147 <push state="cb-string"/>
148 </rule>
149 <rule pattern="(q|qq|qw|qr|qx)\(">
150 <token type="LiteralStringOther"/>
151 <push state="rb-string"/>
152 </rule>
153 <rule pattern="(q|qq|qw|qr|qx)\[">
154 <token type="LiteralStringOther"/>
155 <push state="sb-string"/>
156 </rule>
157 <rule pattern="(q|qq|qw|qr|qx)\&lt;">
158 <token type="LiteralStringOther"/>
159 <push state="lt-string"/>
160 </rule>
161 <rule pattern="(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2">
162 <token type="LiteralStringOther"/>
163 </rule>
164 <rule pattern="(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
165 <bygroups>
166 <token type="Keyword"/>
167 <token type="Text"/>
168 <token type="NameNamespace"/>
169 </bygroups>
170 </rule>
171 <rule pattern="(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
172 <bygroups>
173 <token type="Keyword"/>
174 <token type="Text"/>
175 <token type="NameNamespace"/>
176 </bygroups>
177 </rule>
178 <rule pattern="(sub)(\s+)">
179 <bygroups>
180 <token type="Keyword"/>
181 <token type="Text"/>
182 </bygroups>
183 <push state="funcname"/>
184 </rule>
185 <rule pattern="(package|require|use|no)\b">
186 <token type="Keyword"/>
187 </rule>
188 <rule pattern="(\[\]|\*\*|::|&lt;&lt;|&gt;&gt;|&gt;=|&lt;=&gt;|&lt;=|={3}|!=|=~|!~|&amp;&amp;?|\|\||\.{1,3})">
189 <token type="Operator"/>
190 </rule>
191 <rule pattern="[-+/*%=&lt;&gt;&amp;^|!\\~]=?">
192 <token type="Operator"/>
193 </rule>
194 <rule pattern="[()\[\]:;,&lt;&gt;/?{}]">
195 <token type="Punctuation"/>
196 </rule>
197 <rule pattern="(?=\w)">
198 <token type="Name"/>
199 <push state="name"/>
200 </rule>
201 </state>
202 <state name="cb-string">
203 <rule pattern="\\[{}\\]">
204 <token type="LiteralStringOther"/>
205 </rule>
206 <rule pattern="\\">
207 <token type="LiteralStringOther"/>
208 </rule>
209 <rule pattern="\{">
210 <token type="LiteralStringOther"/>
211 <push state="cb-string"/>
212 </rule>
213 <rule pattern="\}">
214 <token type="LiteralStringOther"/>
215 <pop depth="1"/>
216 </rule>
217 <rule pattern="[^{}\\]+">
218 <token type="LiteralStringOther"/>
219 </rule>
220 </state>
221 <state name="balanced-regex">
222 <rule pattern="/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*">
223 <token type="LiteralStringRegex"/>
224 <pop depth="1"/>
225 </rule>
226 <rule pattern="!(\\\\|\\[^\\]|[^\\!])*![egimosx]*">
227 <token type="LiteralStringRegex"/>
228 <pop depth="1"/>
229 </rule>
230 <rule pattern="\\(\\\\|[^\\])*\\[egimosx]*">
231 <token type="LiteralStringRegex"/>
232 <pop depth="1"/>
233 </rule>
234 <rule pattern="\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*">
235 <token type="LiteralStringRegex"/>
236 <pop depth="1"/>
237 </rule>
238 <rule pattern="&lt;(\\\\|\\[^\\]|[^\\&gt;])*&gt;[egimosx]*">
239 <token type="LiteralStringRegex"/>
240 <pop depth="1"/>
241 </rule>
242 <rule pattern="\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*">
243 <token type="LiteralStringRegex"/>
244 <pop depth="1"/>
245 </rule>
246 <rule pattern="\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*">
247 <token type="LiteralStringRegex"/>
248 <pop depth="1"/>
249 </rule>
250 <rule pattern="@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*">
251 <token type="LiteralStringRegex"/>
252 <pop depth="1"/>
253 </rule>
254 <rule pattern="%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*">
255 <token type="LiteralStringRegex"/>
256 <pop depth="1"/>
257 </rule>
258 <rule pattern="\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*">
259 <token type="LiteralStringRegex"/>
260 <pop depth="1"/>
261 </rule>
262 </state>
263 <state name="lt-string">
264 <rule pattern="\\[&lt;&gt;\\]">
265 <token type="LiteralStringOther"/>
266 </rule>
267 <rule pattern="\\">
268 <token type="LiteralStringOther"/>
269 </rule>
270 <rule pattern="\&lt;">
271 <token type="LiteralStringOther"/>
272 <push state="lt-string"/>
273 </rule>
274 <rule pattern="\&gt;">
275 <token type="LiteralStringOther"/>
276 <pop depth="1"/>
277 </rule>
278 <rule pattern="[^&lt;&gt;]+">
279 <token type="LiteralStringOther"/>
280 </rule>
281 </state>
282 <state name="format">
283 <rule pattern="\.\n">
284 <token type="LiteralStringInterpol"/>
285 <pop depth="1"/>
286 </rule>
287 <rule pattern="[^\n]*\n">
288 <token type="LiteralStringInterpol"/>
289 </rule>
290 </state>
291 <state name="funcname">
292 <rule pattern="[a-zA-Z_]\w*[!?]?">
293 <token type="NameFunction"/>
294 </rule>
295 <rule pattern="\s+">
296 <token type="Text"/>
297 </rule>
298 <rule pattern="(\([$@%]*\))(\s*)">
299 <bygroups>
300 <token type="Punctuation"/>
301 <token type="Text"/>
302 </bygroups>
303 </rule>
304 <rule pattern=";">
305 <token type="Punctuation"/>
306 <pop depth="1"/>
307 </rule>
308 <rule pattern=".*?\{">
309 <token type="Punctuation"/>
310 <pop depth="1"/>
311 </rule>
312 </state>
313 <state name="end-part">
314 <rule pattern=".+">
315 <token type="CommentPreproc"/>
316 <pop depth="1"/>
317 </rule>
318 </state>
319 <state name="varname">
320 <rule pattern="\s+">
321 <token type="Text"/>
322 </rule>
323 <rule pattern="\{">
324 <token type="Punctuation"/>
325 <pop depth="1"/>
326 </rule>
327 <rule pattern="\)|,">
328 <token type="Punctuation"/>
329 <pop depth="1"/>
330 </rule>
331 <rule pattern="\w+::">
332 <token type="NameNamespace"/>
333 </rule>
334 <rule pattern="[\w:]+">
335 <token type="NameVariable"/>
336 <pop depth="1"/>
337 </rule>
338 </state>
339 <state name="name">
340 <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*-&gt;)">
341 <token type="NameNamespace"/>
342 <pop depth="1"/>
343 </rule>
344 <rule pattern="[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::">
345 <token type="NameNamespace"/>
346 <pop depth="1"/>
347 </rule>
348 <rule pattern="[\w:]+">
349 <token type="Name"/>
350 <pop depth="1"/>
351 </rule>
352 <rule pattern="[A-Z_]+(?=\W)">
353 <token type="NameConstant"/>
354 <pop depth="1"/>
355 </rule>
356 <rule pattern="(?=\W)">
357 <token type="Text"/>
358 <pop depth="1"/>
359 </rule>
360 </state>
361 <state name="rb-string">
362 <rule pattern="\\[()\\]">
363 <token type="LiteralStringOther"/>
364 </rule>
365 <rule pattern="\\">
366 <token type="LiteralStringOther"/>
367 </rule>
368 <rule pattern="\(">
369 <token type="LiteralStringOther"/>
370 <push state="rb-string"/>
371 </rule>
372 <rule pattern="\)">
373 <token type="LiteralStringOther"/>
374 <pop depth="1"/>
375 </rule>
376 <rule pattern="[^()]+">
377 <token type="LiteralStringOther"/>
378 </rule>
379 </state>
380 <state name="sb-string">
381 <rule pattern="\\[\[\]\\]">
382 <token type="LiteralStringOther"/>
383 </rule>
384 <rule pattern="\\">
385 <token type="LiteralStringOther"/>
386 </rule>
387 <rule pattern="\[">
388 <token type="LiteralStringOther"/>
389 <push state="sb-string"/>
390 </rule>
391 <rule pattern="\]">
392 <token type="LiteralStringOther"/>
393 <pop depth="1"/>
394 </rule>
395 <rule pattern="[^\[\]]+">
396 <token type="LiteralStringOther"/>
397 </rule>
398 </state>
399 </rules>
400</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml
new file mode 100644
index 0000000..69e9e85
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/php.xml
@@ -0,0 +1,211 @@
1<lexer>
2 <config>
3 <name>PHP</name>
4 <alias>php</alias>
5 <alias>php3</alias>
6 <alias>php4</alias>
7 <alias>php5</alias>
8 <filename>*.php</filename>
9 <filename>*.php[345]</filename>
10 <filename>*.inc</filename>
11 <mime_type>text/x-php</mime_type>
12 <case_insensitive>true</case_insensitive>
13 <dot_all>true</dot_all>
14 <ensure_nl>true</ensure_nl>
15 </config>
16 <rules>
17 <state name="magicfuncs">
18 <rule pattern="(__callStatic|__set_state|__construct|__debugInfo|__toString|__destruct|__invoke|__wakeup|__clone|__sleep|__isset|__unset|__call|__get|__set)\b">
19 <token type="NameFunctionMagic"/>
20 </rule>
21 </state>
22 <state name="magicconstants">
23 <rule pattern="(__NAMESPACE__|__FUNCTION__|__METHOD__|__CLASS__|__TRAIT__|__LINE__|__FILE__|__DIR__)\b">
24 <token type="NameConstant"/>
25 </rule>
26 </state>
27 <state name="classname">
28 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
29 <token type="NameClass"/>
30 <pop depth="1"/>
31 </rule>
32 </state>
33 <state name="functionname">
34 <rule>
35 <include state="magicfuncs"/>
36 </rule>
37 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
38 <token type="NameFunction"/>
39 <pop depth="1"/>
40 </rule>
41 <rule>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="string">
46 <rule pattern="&#34;">
47 <token type="LiteralStringDouble"/>
48 <pop depth="1"/>
49 </rule>
50 <rule pattern="[^{$&#34;\\]+">
51 <token type="LiteralStringDouble"/>
52 </rule>
53 <rule pattern="\\([nrt&#34;$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})">
54 <token type="LiteralStringEscape"/>
55 </rule>
56 <rule pattern="\$(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*(\[\S+?\]|-&gt;(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)?">
57 <token type="LiteralStringInterpol"/>
58 </rule>
59 <rule pattern="(\{\$\{)(.*?)(\}\})">
60 <bygroups>
61 <token type="LiteralStringInterpol"/>
62 <usingself state="root"/>
63 <token type="LiteralStringInterpol"/>
64 </bygroups>
65 </rule>
66 <rule pattern="(\{)(\$.*?)(\})">
67 <bygroups>
68 <token type="LiteralStringInterpol"/>
69 <usingself state="root"/>
70 <token type="LiteralStringInterpol"/>
71 </bygroups>
72 </rule>
73 <rule pattern="(\$\{)(\S+)(\})">
74 <bygroups>
75 <token type="LiteralStringInterpol"/>
76 <token type="NameVariable"/>
77 <token type="LiteralStringInterpol"/>
78 </bygroups>
79 </rule>
80 <rule pattern="[${\\]">
81 <token type="LiteralStringDouble"/>
82 </rule>
83 </state>
84 <state name="root">
85 <rule pattern="\?&gt;">
86 <token type="CommentPreproc"/>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="(&lt;&lt;&lt;)([\&#39;&#34;]?)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)">
90 <bygroups>
91 <token type="LiteralString"/>
92 <token type="LiteralString"/>
93 <token type="LiteralStringDelimiter"/>
94 <token type="LiteralString"/>
95 <token type="LiteralStringDelimiter"/>
96 <token type="Punctuation"/>
97 <token type="Text"/>
98 </bygroups>
99 </rule>
100 <rule pattern="\s+">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="#.*?\n">
104 <token type="CommentSingle"/>
105 </rule>
106 <rule pattern="//.*?\n">
107 <token type="CommentSingle"/>
108 </rule>
109 <rule pattern="/\*\*/">
110 <token type="CommentMultiline"/>
111 </rule>
112 <rule pattern="/\*\*.*?\*/">
113 <token type="LiteralStringDoc"/>
114 </rule>
115 <rule pattern="/\*.*?\*/">
116 <token type="CommentMultiline"/>
117 </rule>
118 <rule pattern="(-&gt;|::)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
119 <bygroups>
120 <token type="Operator"/>
121 <token type="Text"/>
122 <token type="NameAttribute"/>
123 </bygroups>
124 </rule>
125 <rule pattern="[~!%^&amp;*+=|:.&lt;&gt;/@-]+">
126 <token type="Operator"/>
127 </rule>
128 <rule pattern="\?">
129 <token type="Operator"/>
130 </rule>
131 <rule pattern="[\[\]{}();,]+">
132 <token type="Punctuation"/>
133 </rule>
134 <rule pattern="(class)(\s+)">
135 <bygroups>
136 <token type="Keyword"/>
137 <token type="Text"/>
138 </bygroups>
139 <push state="classname"/>
140 </rule>
141 <rule pattern="(function)(\s*)(?=\()">
142 <bygroups>
143 <token type="Keyword"/>
144 <token type="Text"/>
145 </bygroups>
146 </rule>
147 <rule pattern="(function)(\s+)(&amp;?)(\s*)">
148 <bygroups>
149 <token type="Keyword"/>
150 <token type="Text"/>
151 <token type="Operator"/>
152 <token type="Text"/>
153 </bygroups>
154 <push state="functionname"/>
155 </rule>
156 <rule pattern="(const)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)">
157 <bygroups>
158 <token type="Keyword"/>
159 <token type="Text"/>
160 <token type="NameConstant"/>
161 </bygroups>
162 </rule>
163 <rule pattern="(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|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally)\b">
164 <token type="Keyword"/>
165 </rule>
166 <rule pattern="(true|false|null)\b">
167 <token type="KeywordConstant"/>
168 </rule>
169 <rule>
170 <include state="magicconstants"/>
171 </rule>
172 <rule pattern="\$\{\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*\}">
173 <token type="NameVariable"/>
174 </rule>
175 <rule pattern="\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
176 <token type="NameVariable"/>
177 </rule>
178 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*">
179 <token type="NameOther"/>
180 </rule>
181 <rule pattern="(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?">
182 <token type="LiteralNumberFloat"/>
183 </rule>
184 <rule pattern="\d+e[+-]?[0-9]+">
185 <token type="LiteralNumberFloat"/>
186 </rule>
187 <rule pattern="0[0-7]+">
188 <token type="LiteralNumberOct"/>
189 </rule>
190 <rule pattern="0x[a-f0-9_]+">
191 <token type="LiteralNumberHex"/>
192 </rule>
193 <rule pattern="\d[\d_]*">
194 <token type="LiteralNumberInteger"/>
195 </rule>
196 <rule pattern="0b[01]+">
197 <token type="LiteralNumberBin"/>
198 </rule>
199 <rule pattern="&#39;([^&#39;\\]*(?:\\.[^&#39;\\]*)*)&#39;">
200 <token type="LiteralStringSingle"/>
201 </rule>
202 <rule pattern="`([^`\\]*(?:\\.[^`\\]*)*)`">
203 <token type="LiteralStringBacktick"/>
204 </rule>
205 <rule pattern="&#34;">
206 <token type="LiteralStringDouble"/>
207 <push state="string"/>
208 </rule>
209 </state>
210 </rules>
211</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml
new file mode 100644
index 0000000..5acd773
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pig.xml
@@ -0,0 +1,105 @@
1<lexer>
2 <config>
3 <name>Pig</name>
4 <alias>pig</alias>
5 <filename>*.pig</filename>
6 <mime_type>text/x-pig</mime_type>
7 <case_insensitive>true</case_insensitive>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="\s+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="--.*">
15 <token type="Comment"/>
16 </rule>
17 <rule pattern="/\*[\w\W]*?\*/">
18 <token type="CommentMultiline"/>
19 </rule>
20 <rule pattern="\\\n">
21 <token type="Text"/>
22 </rule>
23 <rule pattern="\\">
24 <token type="Text"/>
25 </rule>
26 <rule pattern="\&#39;(?:\\[ntbrf\\\&#39;]|\\u[0-9a-f]{4}|[^\&#39;\\\n\r])*\&#39;">
27 <token type="LiteralString"/>
28 </rule>
29 <rule>
30 <include state="keywords"/>
31 </rule>
32 <rule>
33 <include state="types"/>
34 </rule>
35 <rule>
36 <include state="builtins"/>
37 </rule>
38 <rule>
39 <include state="punct"/>
40 </rule>
41 <rule>
42 <include state="operators"/>
43 </rule>
44 <rule pattern="[0-9]*\.[0-9]+(e[0-9]+)?[fd]?">
45 <token type="LiteralNumberFloat"/>
46 </rule>
47 <rule pattern="0x[0-9a-f]+">
48 <token type="LiteralNumberHex"/>
49 </rule>
50 <rule pattern="[0-9]+L?">
51 <token type="LiteralNumberInteger"/>
52 </rule>
53 <rule pattern="\n">
54 <token type="Text"/>
55 </rule>
56 <rule pattern="([a-z_]\w*)(\s*)(\()">
57 <bygroups>
58 <token type="NameFunction"/>
59 <token type="Text"/>
60 <token type="Punctuation"/>
61 </bygroups>
62 </rule>
63 <rule pattern="[()#:]">
64 <token type="Text"/>
65 </rule>
66 <rule pattern="[^(:#\&#39;&#34;)\s]+">
67 <token type="Text"/>
68 </rule>
69 <rule pattern="\S+\s+">
70 <token type="Text"/>
71 </rule>
72 </state>
73 <state name="keywords">
74 <rule pattern="(assert|and|any|all|arrange|as|asc|bag|by|cache|CASE|cat|cd|cp|%declare|%default|define|dense|desc|describe|distinct|du|dump|eval|exex|explain|filter|flatten|foreach|full|generate|group|help|if|illustrate|import|inner|input|into|is|join|kill|left|limit|load|ls|map|matches|mkdir|mv|not|null|onschema|or|order|outer|output|parallel|pig|pwd|quit|register|returns|right|rm|rmf|rollup|run|sample|set|ship|split|stderr|stdin|stdout|store|stream|through|union|using|void)\b">
75 <token type="Keyword"/>
76 </rule>
77 </state>
78 <state name="builtins">
79 <rule pattern="(AVG|BinStorage|cogroup|CONCAT|copyFromLocal|copyToLocal|COUNT|cross|DIFF|MAX|MIN|PigDump|PigStorage|SIZE|SUM|TextLoader|TOKENIZE)\b">
80 <token type="NameBuiltin"/>
81 </rule>
82 </state>
83 <state name="types">
84 <rule pattern="(bytearray|BIGINTEGER|BIGDECIMAL|chararray|datetime|double|float|int|long|tuple)\b">
85 <token type="KeywordType"/>
86 </rule>
87 </state>
88 <state name="punct">
89 <rule pattern="[;(){}\[\]]">
90 <token type="Punctuation"/>
91 </rule>
92 </state>
93 <state name="operators">
94 <rule pattern="[#=,./%+\-?]">
95 <token type="Operator"/>
96 </rule>
97 <rule pattern="(eq|gt|lt|gte|lte|neq|matches)\b">
98 <token type="Operator"/>
99 </rule>
100 <rule pattern="(==|&lt;=|&lt;|&gt;=|&gt;|!=)">
101 <token type="Operator"/>
102 </rule>
103 </state>
104 </rules>
105</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml
new file mode 100644
index 0000000..875dcba
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pkgconfig.xml
@@ -0,0 +1,73 @@
1<lexer>
2 <config>
3 <name>PkgConfig</name>
4 <alias>pkgconfig</alias>
5 <filename>*.pc</filename>
6 </config>
7 <rules>
8 <state name="curly">
9 <rule pattern="\}">
10 <token type="LiteralStringInterpol"/>
11 <pop depth="1"/>
12 </rule>
13 <rule pattern="\w+">
14 <token type="NameAttribute"/>
15 </rule>
16 </state>
17 <state name="spvalue">
18 <rule>
19 <include state="interp"/>
20 </rule>
21 <rule pattern="#.*$">
22 <token type="CommentSingle"/>
23 <pop depth="1"/>
24 </rule>
25 <rule pattern="\n">
26 <token type="Text"/>
27 <pop depth="1"/>
28 </rule>
29 <rule pattern="[^${}#\n]+">
30 <token type="Text"/>
31 </rule>
32 <rule pattern=".">
33 <token type="Text"/>
34 </rule>
35 </state>
36 <state name="root">
37 <rule pattern="#.*$">
38 <token type="CommentSingle"/>
39 </rule>
40 <rule pattern="^(\w+)(=)">
41 <bygroups>
42 <token type="NameAttribute"/>
43 <token type="Operator"/>
44 </bygroups>
45 </rule>
46 <rule pattern="^([\w.]+)(:)">
47 <bygroups>
48 <token type="NameTag"/>
49 <token type="Punctuation"/>
50 </bygroups>
51 <push state="spvalue"/>
52 </rule>
53 <rule>
54 <include state="interp"/>
55 </rule>
56 <rule pattern="[^${}#=:\n.]+">
57 <token type="Text"/>
58 </rule>
59 <rule pattern=".">
60 <token type="Text"/>
61 </rule>
62 </state>
63 <state name="interp">
64 <rule pattern="\$\$">
65 <token type="Text"/>
66 </rule>
67 <rule pattern="\$\{">
68 <token type="LiteralStringInterpol"/>
69 <push state="curly"/>
70 </rule>
71 </state>
72 </rules>
73</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml
new file mode 100644
index 0000000..e3e813a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pl_pgsql.xml
@@ -0,0 +1,119 @@
1<lexer>
2 <config>
3 <name>PL/pgSQL</name>
4 <alias>plpgsql</alias>
5 <mime_type>text/x-plpgsql</mime_type>
6 <case_insensitive>true</case_insensitive>
7 <not_multiline>true</not_multiline>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="\%[a-z]\w*\b">
12 <token type="NameBuiltin"/>
13 </rule>
14 <rule pattern=":=">
15 <token type="Operator"/>
16 </rule>
17 <rule pattern="\&lt;\&lt;[a-z]\w*\&gt;\&gt;">
18 <token type="NameLabel"/>
19 </rule>
20 <rule pattern="\#[a-z]\w*\b">
21 <token type="KeywordPseudo"/>
22 </rule>
23 <rule pattern="\s+">
24 <token type="TextWhitespace"/>
25 </rule>
26 <rule pattern="--.*\n?">
27 <token type="CommentSingle"/>
28 </rule>
29 <rule pattern="/\*">
30 <token type="CommentMultiline"/>
31 <push state="multiline-comments"/>
32 </rule>
33 <rule pattern="(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b">
34 <token type="NameBuiltin"/>
35 </rule>
36 <rule pattern="(CURRENT_TIMESTAMP|CHARACTERISTICS|CURRENT_CATALOG|CURRENT_SCHEMA|LOCALTIMESTAMP|XMLATTRIBUTES|AUTHORIZATION|CONFIGURATION|CURRENT_TIME|CURRENT_ROLE|CURRENT_USER|CURRENT_DATE|MATERIALIZED|SESSION_USER|SERIALIZABLE|CONCURRENTLY|XMLSERIALIZE|DIAGNOSTICS|UNCOMMITTED|UNENCRYPTED|TRANSACTION|INSENSITIVE|CONSTRAINTS|CONVERSION|ORDINALITY|LC_COLLATE|DEALLOCATE|CONSTRAINT|CONNECTION|PRIVILEGES|PROCEDURAL|STANDALONE|DICTIONARY|XMLELEMENT|STATISTICS|DEFERRABLE|DELIMITERS|REPEATABLE|TABLESPACE|REFERENCES|CHECKPOINT|WHITESPACE|ASYMMETRIC|ASSIGNMENT|CHARACTER|INCLUDING|SYMMETRIC|IMMUTABLE|IMMEDIATE|XMLCONCAT|INTERSECT|ISOLATION|DELIMITER|COLLATION|TIMESTAMP|INCREMENT|ENCRYPTED|PROCEDURE|COMMITTED|SUBSTRING|EXCEPTION|VALIDATOR|UNBOUNDED|PARTITION|ATTRIBUTE|INITIALLY|EXCLUSIVE|SAVEPOINT|XMLEXISTS|ASSERTION|EXTENSION|STATEMENT|RETURNING|LEAKPROOF|RECURSIVE|FUNCTIONS|AGGREGATE|LOCALTIME|FOLLOWING|PRECEDING|PRECISION|SEQUENCES|XMLFOREST|TEMPORARY|EXCLUDING|DATABASE|XMLPARSE|CONTINUE|INHERITS|UNLOGGED|DEFAULTS|COMMENTS|DEFERRED|MINVALUE|TRAILING|VARIADIC|COALESCE|INTERVAL|OVERLAPS|MAXVALUE|IMPLICIT|DISTINCT|VOLATILE|DOCUMENT|SMALLINT|OPERATOR|SEQUENCE|CONSTANT|CASCADED|IDENTITY|ENCODING|SNAPSHOT|TRUNCATE|ROLLBACK|PREPARED|LANGUAGE|UNLISTEN|TEMPLATE|BACKWARD|VALIDATE|NATIONAL|REASSIGN|GREATEST|LC_CTYPE|EXTERNAL|PASSWORD|SECURITY|LOCATION|PRESERVE|FUNCTION|RELATIVE|POSITION|SQLSTATE|ABSOLUTE|RESTRICT|BOOLEAN|FORWARD|UNKNOWN|FOREIGN|RECHECK|NOTHING|NOTNULL|EXTRACT|NATURAL|GRANTED|EXPLAIN|EXECUTE|HANDLER|EXCLUDE|NUMERIC|TRUSTED|VERSION|TRIGGER|VERBOSE|WITHOUT|WRAPPER|OPTIONS|DISCARD|VARYING|DISABLE|DEFINER|DEFAULT|INDEXES|PRIMARY|DECLARE|DECIMAL|PROGRAM|RETURNS|CURRENT|XMLROOT|CONTENT|COMMENT|INSTEAD|COLLATE|INTEGER|CLUSTER|SESSION|VARCHAR|INVOKER|CATALOG|CASCADE|OVERLAY|RESTART|BETWEEN|REPLICA|PARTIAL|REPLACE|FOREACH|LATERAL|PASSING|PERFORM|LEADING|ANALYZE|ANALYSE|SIMILAR|REFRESH|MAPPING|RELEASE|PLACING|REVERSE|REINDEX|STORAGE|INHERIT|PREPARE|UPDATE|VACUUM|RENAME|ISNULL|VALUES|MINUTE|INSERT|INLINE|SCROLL|REVOKE|HEADER|HAVING|TABLES|SYSTEM|GLOBAL|FREEZE|UNIQUE|SCHEMA|SEARCH|FILTER|NOTIFY|SECOND|NOWAIT|FAMILY|NULLIF|EXISTS|EXCEPT|OBJECT|SELECT|ESCAPE|OFFSET|WINDOW|WITHIN|ENABLE|DOUBLE|OPTION|DOMAIN|DELETE|CURSOR|CREATE|SERVER|COMMIT|COLUMN|SIMPLE|CALLED|BINARY|BIGINT|PARSER|STABLE|BEFORE|NOTICE|ALWAYS|STDOUT|RETURN|POLICY|STRICT|ACTION|ACCESS|LISTEN|ABORT|PLANS|MONTH|PRIOR|OWNER|OWNED|OUTER|ORDER|QUOTE|RANGE|TREAT|TYPES|NULLS|UNION|NCHAR|NAMES|UNTIL|MATCH|LOCAL|USING|LIMIT|LEVEL|LEAST|LARGE|LABEL|RESET|VALUE|INPUT|INOUT|INNER|INDEX|RIGHT|ILIKE|VIEWS|GROUP|TABLE|GRANT|WHERE|FORCE|FLOAT|FIRST|FETCH|FALSE|EVENT|WRITE|CYCLE|CROSS|XMLPI|CLOSE|CLASS|SYSID|SETOF|SHARE|CHECK|WHILE|CHAIN|ALIAS|CACHE|ELSIF|BEGIN|ARRAY|START|QUERY|RAISE|STDIN|ALTER|AFTER|ADMIN|STRIP|VALID|WORK|ALSO|RULE|ROWS|OPEN|ROLE|TEMP|LOOP|REAL|TEXT|THEN|TIME|READ|SOME|OVER|EXIT|BOTH|ONLY|TRIM|TRUE|CASE|OIDS|TYPE|CAST|ZONE|NULL|YEAR|NONE|CHAR|NEXT|NAME|MOVE|MODE|LOCK|USER|LOAD|LIKE|LEFT|LAST|COST|JOIN|DATA|INTO|DESC|DROP|ELSE|HOUR|VIEW|HOLD|FULL|WHEN|FROM|EACH|ENUM|WITH|SHOW|COPY|OUT|FOR|ADD|XML|ALL|INT|DEC|DAY|SET|CSV|KEY|AND|ANY|NOT|YES|ROW|END|ASC|REF|GET|BIT|OFF|TO|OR|BY|ON|OF|AS|NO|AT|IS|DO|IN|IF)\b">
37 <token type="Keyword"/>
38 </rule>
39 <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]+">
40 <token type="Operator"/>
41 </rule>
42 <rule pattern="::">
43 <token type="Operator"/>
44 </rule>
45 <rule pattern="\$\d+">
46 <token type="NameVariable"/>
47 </rule>
48 <rule pattern="([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?">
49 <token type="LiteralNumberFloat"/>
50 </rule>
51 <rule pattern="[0-9]+">
52 <token type="LiteralNumberInteger"/>
53 </rule>
54 <rule pattern="((?:E|U&amp;)?)(&#39;)">
55 <bygroups>
56 <token type="LiteralStringAffix"/>
57 <token type="LiteralStringSingle"/>
58 </bygroups>
59 <push state="string"/>
60 </rule>
61 <rule pattern="((?:U&amp;)?)(&#34;)">
62 <bygroups>
63 <token type="LiteralStringAffix"/>
64 <token type="LiteralStringName"/>
65 </bygroups>
66 <push state="quoted-ident"/>
67 </rule>
68 <rule pattern="[a-z_]\w*">
69 <token type="Name"/>
70 </rule>
71 <rule pattern=":([&#39;&#34;]?)[a-z]\w*\b\1">
72 <token type="NameVariable"/>
73 </rule>
74 <rule pattern="[;:()\[\]{},.]">
75 <token type="Punctuation"/>
76 </rule>
77 </state>
78 <state name="multiline-comments">
79 <rule pattern="/\*">
80 <token type="CommentMultiline"/>
81 <push state="multiline-comments"/>
82 </rule>
83 <rule pattern="\*/">
84 <token type="CommentMultiline"/>
85 <pop depth="1"/>
86 </rule>
87 <rule pattern="[^/*]+">
88 <token type="CommentMultiline"/>
89 </rule>
90 <rule pattern="[/*]">
91 <token type="CommentMultiline"/>
92 </rule>
93 </state>
94 <state name="string">
95 <rule pattern="[^&#39;]+">
96 <token type="LiteralStringSingle"/>
97 </rule>
98 <rule pattern="&#39;&#39;">
99 <token type="LiteralStringSingle"/>
100 </rule>
101 <rule pattern="&#39;">
102 <token type="LiteralStringSingle"/>
103 <pop depth="1"/>
104 </rule>
105 </state>
106 <state name="quoted-ident">
107 <rule pattern="[^&#34;]+">
108 <token type="LiteralStringName"/>
109 </rule>
110 <rule pattern="&#34;&#34;">
111 <token type="LiteralStringName"/>
112 </rule>
113 <rule pattern="&#34;">
114 <token type="LiteralStringName"/>
115 <pop depth="1"/>
116 </rule>
117 </state>
118 </rules>
119</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml
new file mode 100644
index 0000000..4ff5a97
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/plutus_core.xml
@@ -0,0 +1,105 @@
1<lexer>
2 <config>
3 <name>Plutus Core</name>
4 <alias>plutus-core</alias>
5 <alias>plc</alias>
6 <filename>*.plc</filename>
7 <mime_type>text/x-plutus-core</mime_type>
8 <mime_type>application/x-plutus-core</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="\s+">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="(\(|\))">
16 <token type="Punctuation"/>
17 </rule>
18 <rule pattern="(\[|\])">
19 <token type="Punctuation"/>
20 </rule>
21 <rule pattern="({|})">
22 <token type="Punctuation"/>
23 </rule>
24 <rule pattern="([+-]?\d+)">
25 <token type="LiteralNumberInteger"/>
26 </rule>
27 <rule pattern="(#([a-fA-F0-9][a-fA-F0-9])+)">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern="(\(\))">
31 <token type="NameConstant"/>
32 </rule>
33 <rule pattern="(True|False)">
34 <token type="NameConstant"/>
35 </rule>
36 <rule pattern="(con |abs |iwrap |unwrap |lam |builtin |delay |force |error)">
37 <token type="Keyword"/>
38 </rule>
39 <rule pattern="(fun |all |ifix |lam |con )">
40 <token type="Keyword"/>
41 </rule>
42 <rule pattern="(type|fun )">
43 <token type="Keyword"/>
44 </rule>
45 <rule pattern="(program )(\S+)">
46 <bygroups>
47 <token type="Keyword"/>
48 <token type="LiteralString"/>
49 </bygroups>
50 </rule>
51 <rule pattern="(unit|bool|integer|bytestring|string)">
52 <token type="KeywordType"/>
53 </rule>
54 <rule pattern="(addInteger |subtractInteger |multiplyInteger |divideInteger |quotientInteger |remainderInteger |modInteger |equalsInteger |lessThanInteger |lessThanEqualsInteger )">
55 <token type="NameBuiltin"/>
56 </rule>
57 <rule pattern="(appendByteString |consByteString |sliceByteString |lengthOfByteString |indexByteString |equalsByteString |lessThanByteString |lessThanEqualsByteString )">
58 <token type="NameBuiltin"/>
59 </rule>
60 <rule pattern="(sha2_256 |sha3_256 |blake2b_256 |verifySignature )">
61 <token type="NameBuiltin"/>
62 </rule>
63 <rule pattern="(appendString |equalsString |encodeUtf8 |decodeUtf8 )">
64 <token type="NameBuiltin"/>
65 </rule>
66 <rule pattern="(ifThenElse )">
67 <token type="NameBuiltin"/>
68 </rule>
69 <rule pattern="(chooseUnit )">
70 <token type="NameBuiltin"/>
71 </rule>
72 <rule pattern="(trace )">
73 <token type="NameBuiltin"/>
74 </rule>
75 <rule pattern="(fstPair |sndPair )">
76 <token type="NameBuiltin"/>
77 </rule>
78 <rule pattern="(chooseList |mkCons |headList |tailList |nullList )">
79 <token type="NameBuiltin"/>
80 </rule>
81 <rule pattern="(chooseData |constrData |mapData |listData |iData |bData |unConstrData |unMapData |unListData |unIData |unBData |equalsData )">
82 <token type="NameBuiltin"/>
83 </rule>
84 <rule pattern="(mkPairData |mkNilData |mkNilPairData )">
85 <token type="NameBuiltin"/>
86 </rule>
87 <rule pattern="([a-zA-Z][a-zA-Z0-9_&#39;]*)">
88 <token type="Name"/>
89 </rule>
90 <rule pattern="&#34;">
91 <token type="LiteralStringDouble"/>
92 <push state="string"/>
93 </rule>
94 </state>
95 <state name="string">
96 <rule pattern="[^\\&#34;]+">
97 <token type="LiteralStringDouble"/>
98 </rule>
99 <rule pattern="&#34;">
100 <token type="LiteralStringDouble"/>
101 <pop depth="1"/>
102 </rule>
103 </state>
104 </rules>
105</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml
new file mode 100644
index 0000000..4efa9db
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/pony.xml
@@ -0,0 +1,135 @@
1<lexer>
2 <config>
3 <name>Pony</name>
4 <alias>pony</alias>
5 <filename>*.pony</filename>
6 </config>
7 <rules>
8 <state name="string">
9 <rule pattern="&#34;">
10 <token type="LiteralString"/>
11 <pop depth="1"/>
12 </rule>
13 <rule pattern="\\&#34;">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="[^\\&#34;]+">
17 <token type="LiteralString"/>
18 </rule>
19 </state>
20 <state name="root">
21 <rule pattern="\n">
22 <token type="Text"/>
23 </rule>
24 <rule pattern="[^\S\n]+">
25 <token type="Text"/>
26 </rule>
27 <rule pattern="//.*\n">
28 <token type="CommentSingle"/>
29 </rule>
30 <rule pattern="/\*">
31 <token type="CommentMultiline"/>
32 <push state="nested_comment"/>
33 </rule>
34 <rule pattern="&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;">
35 <token type="LiteralStringDoc"/>
36 </rule>
37 <rule pattern="&#34;">
38 <token type="LiteralString"/>
39 <push state="string"/>
40 </rule>
41 <rule pattern="\&#39;.*\&#39;">
42 <token type="LiteralStringChar"/>
43 </rule>
44 <rule pattern="=&gt;|[]{}:().~;,|&amp;!^?[]">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern="(addressof|digestof|consume|isnt|and|not|as|is|or)\b">
48 <token type="OperatorWord"/>
49 </rule>
50 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-+/*%=&lt;&gt;]">
51 <token type="Operator"/>
52 </rule>
53 <rule pattern="(compile_intrinsic|compile_error|continue|recover|return|repeat|lambda|elseif|object|#share|match|#send|#read|ifdef|until|embed|while|where|error|break|with|else|#any|this|then|tag|for|trn|try|ref|use|var|val|let|end|iso|box|in|if|do)\b">
54 <token type="Keyword"/>
55 </rule>
56 <rule pattern="(actor|class|struct|primitive|interface|trait|type)((?:\s)+)">
57 <bygroups>
58 <token type="Keyword"/>
59 <token type="Text"/>
60 </bygroups>
61 <push state="typename"/>
62 </rule>
63 <rule pattern="(new|fun|be)((?:\s)+)">
64 <bygroups>
65 <token type="Keyword"/>
66 <token type="Text"/>
67 </bygroups>
68 <push state="methodname"/>
69 </rule>
70 <rule pattern="(DisposableActor|NullablePointer|AsioEventNotify|UnsignedInteger|RuntimeOptions|DoNotOptimise|FloatingPoint|SignedInteger|ReadElement|ArrayValues|StringBytes|StringRunes|InputNotify|InputStream|AsioEventID|ByteSeqIter|AmbientAuth|Comparable|ArrayPairs|Stringable|OutStream|SourceLoc|ArrayKeys|StdStream|Equatable|AsioEvent|Iterator|Platform|Unsigned|Greater|Compare|Integer|Pointer|ReadSeq|ByteSeq|String|Number|Signed|Float|USize|Stdin|ILong|ISize|HasEq|Array|ULong|Equal|I128|U128|Bool|Less|Real|None|Seq|I64|Any|F32|F64|U64|U32|I32|Int|I16|U16|Env|I8|U8)\b">
71 <token type="KeywordType"/>
72 </rule>
73 <rule pattern="_?[A-Z]\w*">
74 <token type="NameClass"/>
75 </rule>
76 <rule pattern="string\(\)">
77 <token type="NameOther"/>
78 </rule>
79 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+">
80 <token type="LiteralNumberFloat"/>
81 </rule>
82 <rule pattern="0x[0-9a-fA-F]+">
83 <token type="LiteralNumberHex"/>
84 </rule>
85 <rule pattern="\d+">
86 <token type="LiteralNumberInteger"/>
87 </rule>
88 <rule pattern="(true|false)\b">
89 <token type="Keyword"/>
90 </rule>
91 <rule pattern="_\d*">
92 <token type="Name"/>
93 </rule>
94 <rule pattern="_?[a-z][\w\&#39;_]*">
95 <token type="Name"/>
96 </rule>
97 </state>
98 <state name="typename">
99 <rule pattern="(iso|trn|ref|val|box|tag)?((?:\s)*)(_?[A-Z]\w*)">
100 <bygroups>
101 <token type="Keyword"/>
102 <token type="Text"/>
103 <token type="NameClass"/>
104 </bygroups>
105 <pop depth="1"/>
106 </rule>
107 </state>
108 <state name="methodname">
109 <rule pattern="(iso|trn|ref|val|box|tag)?((?:\s)*)(_?[a-z]\w*)">
110 <bygroups>
111 <token type="Keyword"/>
112 <token type="Text"/>
113 <token type="NameFunction"/>
114 </bygroups>
115 <pop depth="1"/>
116 </rule>
117 </state>
118 <state name="nested_comment">
119 <rule pattern="[^*/]+">
120 <token type="CommentMultiline"/>
121 </rule>
122 <rule pattern="/\*">
123 <token type="CommentMultiline"/>
124 <push/>
125 </rule>
126 <rule pattern="\*/">
127 <token type="CommentMultiline"/>
128 <pop depth="1"/>
129 </rule>
130 <rule pattern="[*/]">
131 <token type="CommentMultiline"/>
132 </rule>
133 </state>
134 </rules>
135</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml
new file mode 100644
index 0000000..15a3422
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/postscript.xml
@@ -0,0 +1,89 @@
1<lexer>
2 <config>
3 <name>PostScript</name>
4 <alias>postscript</alias>
5 <alias>postscr</alias>
6 <filename>*.ps</filename>
7 <filename>*.eps</filename>
8 <mime_type>application/postscript</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="^%!.+\n">
13 <token type="CommentPreproc"/>
14 </rule>
15 <rule pattern="%%.*\n">
16 <token type="CommentSpecial"/>
17 </rule>
18 <rule pattern="(^%.*\n){2,}">
19 <token type="CommentMultiline"/>
20 </rule>
21 <rule pattern="%.*\n">
22 <token type="CommentSingle"/>
23 </rule>
24 <rule pattern="\(">
25 <token type="LiteralString"/>
26 <push state="stringliteral"/>
27 </rule>
28 <rule pattern="[{}&lt;&gt;\[\]]">
29 <token type="Punctuation"/>
30 </rule>
31 <rule pattern="&lt;[0-9A-Fa-f]+&gt;(?=[()&lt;&gt;\[\]{}/%\s])">
32 <token type="LiteralNumberHex"/>
33 </rule>
34 <rule pattern="[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()&lt;&gt;\[\]{}/%\s])">
35 <token type="LiteralNumberOct"/>
36 </rule>
37 <rule pattern="(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()&lt;&gt;\[\]{}/%\s])">
38 <token type="LiteralNumberFloat"/>
39 </rule>
40 <rule pattern="(\-|\+)?[0-9]+(?=[()&lt;&gt;\[\]{}/%\s])">
41 <token type="LiteralNumberInteger"/>
42 </rule>
43 <rule pattern="\/[^()&lt;&gt;\[\]{}/%\s]+(?=[()&lt;&gt;\[\]{}/%\s])">
44 <token type="NameVariable"/>
45 </rule>
46 <rule pattern="[^()&lt;&gt;\[\]{}/%\s]+(?=[()&lt;&gt;\[\]{}/%\s])">
47 <token type="NameFunction"/>
48 </rule>
49 <rule pattern="(false|true)(?=[()&lt;&gt;\[\]{}/%\s])">
50 <token type="KeywordConstant"/>
51 </rule>
52 <rule pattern="(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)(?=[()&lt;&gt;\[\]{}/%\s])">
53 <token type="KeywordReserved"/>
54 </rule>
55 <rule pattern="(dictstackoverflow|undefinedfilename|currentlinewidth|undefinedresult|currentmatrix|defaultmatrix|invertmatrix|concatmatrix|currentpoint|setlinewidth|syntaxerror|idtransform|identmatrix|setrgbcolor|stringwidth|setlinejoin|getinterval|itransform|strokepath|pathforall|rangecheck|setlinecap|dtransform|transform|translate|setmatrix|typecheck|undefined|scalefont|closepath|findfont|showpage|rcurveto|grestore|truncate|pathbbox|charpath|rlineto|rmoveto|ceiling|newpath|setdash|setfont|restore|curveto|setgray|stroke|pstack|matrix|length|lineto|repeat|rotate|moveto|shfill|concat|gsave|aload|scale|array|round|stack|index|begin|print|floor|exch|quit|clip|copy|bind|loop|idiv|fill|show|roll|exit|load|dict|save|arcn|sqrt|exec|rand|atan|end|div|abs|run|def|cvs|exp|cvi|sin|cos|get|dup|mod|put|sub|pop|add|neg|mul|arc|log|ln|gt)(?=[()&lt;&gt;\[\]{}/%\s])">
56 <token type="NameBuiltin"/>
57 </rule>
58 <rule pattern="\s+">
59 <token type="Text"/>
60 </rule>
61 </state>
62 <state name="stringliteral">
63 <rule pattern="[^()\\]+">
64 <token type="LiteralString"/>
65 </rule>
66 <rule pattern="\\">
67 <token type="LiteralStringEscape"/>
68 <push state="escape"/>
69 </rule>
70 <rule pattern="\(">
71 <token type="LiteralString"/>
72 <push/>
73 </rule>
74 <rule pattern="\)">
75 <token type="LiteralString"/>
76 <pop depth="1"/>
77 </rule>
78 </state>
79 <state name="escape">
80 <rule pattern="[0-8]{3}|n|r|t|b|f|\\|\(|\)">
81 <token type="LiteralStringEscape"/>
82 <pop depth="1"/>
83 </rule>
84 <rule>
85 <pop depth="1"/>
86 </rule>
87 </state>
88 </rules>
89</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml
new file mode 100644
index 0000000..f37dab9
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/povray.xml
@@ -0,0 +1,58 @@
1<lexer>
2 <config>
3 <name>POVRay</name>
4 <alias>pov</alias>
5 <filename>*.pov</filename>
6 <filename>*.inc</filename>
7 <mime_type>text/x-povray</mime_type>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="/\*[\w\W]*?\*/">
12 <token type="CommentMultiline"/>
13 </rule>
14 <rule pattern="//.*\n">
15 <token type="CommentSingle"/>
16 </rule>
17 <rule pattern="(?s)&#34;(?:\\.|[^&#34;\\])+&#34;">
18 <token type="LiteralStringDouble"/>
19 </rule>
20 <rule pattern="#(statistics|include|version|declare|default|warning|define|elseif|ifndef|switch|fclose|render|fopen|undef|error|debug|while|local|macro|range|ifdef|break|write|else|case|read|for|end|if)\b">
21 <token type="CommentPreproc"/>
22 </rule>
23 <rule pattern="\b(atmospheric_attenuation|cylindrical_mapping|spherical_mapping|max_intersections|quadratic_spline|ultra_wide_angle|low_error_factor|distance_maximum|recursion_limit|irid_wavelength|volume_rendered|max_trace_level|global_settings|number_of_waves|vol_with_light|planar_mapping|gray_threshold|nearest_count|minimum_reuse|test_camera_4|assumed_gamma|ambient_light|volume_object|test_camera_3|max_iteration|linear_spline|fade_distance|test_camera_2|falloff_angle|test_camera_1|triangle_wave|orthographic|linear_sweep|hypercomplex|cubic_spline|eccentricity|material_map|vaxis_rotate|scallop_wave|quick_colour|aa_threshold|blur_samples|conic_sweep|error_bound|interpolate|file_exists|attenuating|quick_color|texture_map|focal_point|box_mapping|pigment_map|perspective|water_level|adc_bailout|hf_gray_16|use_colour|clipped_by|turb_depth|reflection|atmosphere|phong_size|turbulence|area_light|fog_offset|vnormalize|normal_map|sky_sphere|fade_power|brick_size|colour_map|background|statistics|brilliance|brightness|scattering|confidence|agate_turb|looks_like|quaternion|bounded_by|shadowless|reciprocal|black_hole|refraction|no_shadow|spotlight|transform|translate|roughness|tightness|use_index|incidence|sine_wave|arc_angle|image_map|threshold|slope_map|direction|thickness|composite|component|color_map|panoramic|ramp_wave|radiosity|use_color|max_value|bump_size|precision|frequency|dust_type|hierarchy|strength|gradient|pattern1|fog_type|pattern2|specular|constant|flatness|control0|wrinkles|control1|pattern3|adaptive|caustics|bump_map|exponent|metallic|transmit|aa_level|point_at|map_type|emitting|variance|location|distance|aperture|texture|leopard|ripples|ambient|warning|diffuse|look_at|rainbow|radians|u_steps|quilted|degrees|average|vrotate|default|declare|inverse|samples|include|pigment|version|falloff|spotted|crackle|checker|spiral2|vlength|spiral1|fisheye|octaves|hexagon|fog_alt|granite|omnimax|glowing|v_steps|radius|concat|spiral|smooth|hollow|offset|normal|finish|bumpy1|filter|colour|mortar|rotate|lambda|bumpy3|bumpy2|strcmp|linear|switch|substr|repeat|vcross|strupr|strlen|strlwr|render|matrix|marble|radial|mandel|jitter|tiles|dents|atanh|break|range|track|asinh|brick|waves|bumps|atan2|sturm|debug|onion|rgbft|angle|right|tile2|crand|acosh|error|scale|alpha|while|false|agate|ifdef|phong|phase|clock|width|slice|omega|color|floor|count|green|atan|blue|bozo|seed|case|sqrt|rgbt|warp|rgbf|ceil|cosh|rand|cube|vdot|dust|else|flip|asin|type|tanh|halo|wood|true|open|once|acos|sinh|irid|max|mod|min|all|log|off|ior|tga|iff|pgm|ttf|asc|png|tan|gif|abs|fog|sys|exp|end|val|pot|pow|div|ppm|pwr|red|cos|chr|rgb|sqr|sin|yes|str|int|sky|if|no|on|pi|up|t)\b">
24 <token type="Keyword"/>
25 </rule>
26 <rule pattern="(smooth_triangle|superellipsoid|julia_fractal|bicubic_patch|light_source|height_field|intersection|difference|cylinder|triangle|polygon|quartic|quadric|camera|sphere|object|merge|plane|lathe|torus|prism|cubic|union|poly|mesh|disc|cone|text|blob|box|sor)\b">
27 <token type="NameBuiltin"/>
28 </rule>
29 <rule pattern="[\[\](){}&lt;&gt;;,]">
30 <token type="Punctuation"/>
31 </rule>
32 <rule pattern="[-+*/=]">
33 <token type="Operator"/>
34 </rule>
35 <rule pattern="\b(x|y|z|u|v)\b">
36 <token type="NameBuiltinPseudo"/>
37 </rule>
38 <rule pattern="[a-zA-Z_]\w*">
39 <token type="Name"/>
40 </rule>
41 <rule pattern="[0-9]+\.[0-9]*">
42 <token type="LiteralNumberFloat"/>
43 </rule>
44 <rule pattern="\.[0-9]+">
45 <token type="LiteralNumberFloat"/>
46 </rule>
47 <rule pattern="[0-9]+">
48 <token type="LiteralNumberInteger"/>
49 </rule>
50 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
51 <token type="LiteralString"/>
52 </rule>
53 <rule pattern="\s+">
54 <token type="Text"/>
55 </rule>
56 </state>
57 </rules>
58</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml
new file mode 100644
index 0000000..0ff1e35
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powerquery.xml
@@ -0,0 +1,51 @@
1<lexer>
2 <config>
3 <name>PowerQuery</name>
4 <alias>powerquery</alias>
5 <alias>pq</alias>
6 <filename>*.pq</filename>
7 <mime_type>text/x-powerquery</mime_type>
8 <case_insensitive>true</case_insensitive>
9 <dot_all>true</dot_all>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="//.*?\n">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="/\*.*?\*/">
20 <token type="CommentMultiline"/>
21 </rule>
22 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
23 <token type="LiteralString"/>
24 </rule>
25 <rule pattern="(and|as|each|else|error|false|if|in|is|let|meta|not|null|or|otherwise|section|shared|then|true|try|type)\b">
26 <token type="Keyword"/>
27 </rule>
28 <rule pattern="(#binary|#date|#datetime|#datetimezone|#duration|#infinity|#nan|#sections|#shared|#table|#time)\b">
29 <token type="KeywordType"/>
30 </rule>
31 <rule pattern="(([a-zA-Z]|_)[\w|._]*|#&#34;[^&#34;]+&#34;)">
32 <token type="Name"/>
33 </rule>
34 <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
35 <token type="LiteralNumberHex"/>
36 </rule>
37 <rule pattern="([0-9]+\.[0-9]+|\.[0-9]+)([eE][0-9]+)?">
38 <token type="LiteralNumberFloat"/>
39 </rule>
40 <rule pattern="[0-9]+">
41 <token type="LiteralNumberInteger"/>
42 </rule>
43 <rule pattern="[\(\)\[\]\{\}]">
44 <token type="Punctuation"/>
45 </rule>
46 <rule pattern="\.\.|\.\.\.|=&gt;|&lt;=|&gt;=|&lt;&gt;|[@!?,;=&lt;&gt;\+\-\*\/&amp;]">
47 <token type="Operator"/>
48 </rule>
49 </state>
50 </rules>
51</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml
new file mode 100644
index 0000000..d7bd02a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/powershell.xml
@@ -0,0 +1,150 @@
1<lexer>
2 <config>
3 <name>PowerShell</name>
4 <alias>powershell</alias>
5 <alias>posh</alias>
6 <alias>ps1</alias>
7 <alias>psm1</alias>
8 <alias>psd1</alias>
9 <filename>*.ps1</filename>
10 <filename>*.psm1</filename>
11 <filename>*.psd1</filename>
12 <mime_type>text/x-powershell</mime_type>
13 <case_insensitive>true</case_insensitive>
14 <dot_all>true</dot_all>
15 </config>
16 <rules>
17 <state name="root">
18 <rule pattern="\(">
19 <token type="Punctuation"/>
20 <push state="child"/>
21 </rule>
22 <rule pattern="\s+">
23 <token type="Text"/>
24 </rule>
25 <rule pattern="^(\s*#[#\s]*)(\.(?:component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis))([^\n]*$)">
26 <bygroups>
27 <token type="Comment"/>
28 <token type="LiteralStringDoc"/>
29 <token type="Comment"/>
30 </bygroups>
31 </rule>
32 <rule pattern="#[^\n]*?$">
33 <token type="Comment"/>
34 </rule>
35 <rule pattern="(&amp;lt;|&lt;)#">
36 <token type="CommentMultiline"/>
37 <push state="multline"/>
38 </rule>
39 <rule pattern="(?i)([A-Z]:)">
40 <token type="Name"/>
41 </rule>
42 <rule pattern="@&#34;\n">
43 <token type="LiteralStringHeredoc"/>
44 <push state="heredoc-double"/>
45 </rule>
46 <rule pattern="@&#39;\n.*?\n&#39;@">
47 <token type="LiteralStringHeredoc"/>
48 </rule>
49 <rule pattern="`[\&#39;&#34;$@-]">
50 <token type="Punctuation"/>
51 </rule>
52 <rule pattern="&#34;">
53 <token type="LiteralStringDouble"/>
54 <push state="string"/>
55 </rule>
56 <rule pattern="&#39;([^&#39;]|&#39;&#39;)*&#39;">
57 <token type="LiteralStringSingle"/>
58 </rule>
59 <rule pattern="(\$|@@|@)((global|script|private|env):)?\w+">
60 <token type="NameVariable"/>
61 </rule>
62 <rule pattern="[a-z]\w*-[a-z]\w*\b">
63 <token type="NameBuiltin"/>
64 </rule>
65 <rule pattern="(while|validateset|validaterange|validatepattern|validatelength|validatecount|until|trap|switch|return|ref|process|param|parameter|in|if|global:|function|foreach|for|finally|filter|end|elseif|else|dynamicparam|do|default|continue|cmdletbinding|break|begin|alias|\?|%|#script|#private|#local|#global|mandatory|parametersetname|position|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|helpmessage|try|catch|throw)\b">
66 <token type="Keyword"/>
67 </rule>
68 <rule pattern="-(and|as|band|bnot|bor|bxor|casesensitive|ccontains|ceq|cge|cgt|cle|clike|clt|cmatch|cne|cnotcontains|cnotlike|cnotmatch|contains|creplace|eq|exact|f|file|ge|gt|icontains|ieq|ige|igt|ile|ilike|ilt|imatch|ine|inotcontains|inotlike|inotmatch|ireplace|is|isnot|le|like|lt|match|ne|not|notcontains|notlike|notmatch|or|regex|replace|wildcard)\b">
69 <token type="Operator"/>
70 </rule>
71 <rule pattern="(ac|asnp|cat|cd|cfs|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|curl|cvpa|dbp|del|diff|dir|dnsn|ebp|echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fhx|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps|gpv|group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md|measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri|rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|wget|where|wjb|write)\s">
72 <token type="NameBuiltin"/>
73 </rule>
74 <rule pattern="\[[a-z_\[][\w. `,\[\]]*\]">
75 <token type="NameConstant"/>
76 </rule>
77 <rule pattern="-[a-z_]\w*">
78 <token type="Name"/>
79 </rule>
80 <rule pattern="\w+">
81 <token type="Name"/>
82 </rule>
83 <rule pattern="[.,;@{}\[\]$()=+*/\\&amp;%!~?^`|&lt;&gt;-]|::">
84 <token type="Punctuation"/>
85 </rule>
86 </state>
87 <state name="child">
88 <rule pattern="\)">
89 <token type="Punctuation"/>
90 <pop depth="1"/>
91 </rule>
92 <rule>
93 <include state="root"/>
94 </rule>
95 </state>
96 <state name="multline">
97 <rule pattern="[^#&amp;.]+">
98 <token type="CommentMultiline"/>
99 </rule>
100 <rule pattern="#(&gt;|&amp;gt;)">
101 <token type="CommentMultiline"/>
102 <pop depth="1"/>
103 </rule>
104 <rule pattern="\.(component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis)">
105 <token type="LiteralStringDoc"/>
106 </rule>
107 <rule pattern="[#&amp;.]">
108 <token type="CommentMultiline"/>
109 </rule>
110 </state>
111 <state name="string">
112 <rule pattern="`[0abfnrtv&#39;\&#34;$`]">
113 <token type="LiteralStringEscape"/>
114 </rule>
115 <rule pattern="[^$`&#34;]+">
116 <token type="LiteralStringDouble"/>
117 </rule>
118 <rule pattern="\$\(">
119 <token type="Punctuation"/>
120 <push state="child"/>
121 </rule>
122 <rule pattern="&#34;&#34;">
123 <token type="LiteralStringDouble"/>
124 </rule>
125 <rule pattern="[`$]">
126 <token type="LiteralStringDouble"/>
127 </rule>
128 <rule pattern="&#34;">
129 <token type="LiteralStringDouble"/>
130 <pop depth="1"/>
131 </rule>
132 </state>
133 <state name="heredoc-double">
134 <rule pattern="\n&#34;@">
135 <token type="LiteralStringHeredoc"/>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="\$\(">
139 <token type="Punctuation"/>
140 <push state="child"/>
141 </rule>
142 <rule pattern="[^@\n]+&#34;]">
143 <token type="LiteralStringHeredoc"/>
144 </rule>
145 <rule pattern=".">
146 <token type="LiteralStringHeredoc"/>
147 </rule>
148 </state>
149 </rules>
150</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml
new file mode 100644
index 0000000..391bae3
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/prolog.xml
@@ -0,0 +1,115 @@
1<lexer>
2 <config>
3 <name>Prolog</name>
4 <alias>prolog</alias>
5 <filename>*.ecl</filename>
6 <filename>*.prolog</filename>
7 <filename>*.pro</filename>
8 <filename>*.pl</filename>
9 <mime_type>text/x-prolog</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="/\*">
14 <token type="CommentMultiline"/>
15 <push state="nested-comment"/>
16 </rule>
17 <rule pattern="%.*">
18 <token type="CommentSingle"/>
19 </rule>
20 <rule pattern="0\&#39;.">
21 <token type="LiteralStringChar"/>
22 </rule>
23 <rule pattern="0b[01]+">
24 <token type="LiteralNumberBin"/>
25 </rule>
26 <rule pattern="0o[0-7]+">
27 <token type="LiteralNumberOct"/>
28 </rule>
29 <rule pattern="0x[0-9a-fA-F]+">
30 <token type="LiteralNumberHex"/>
31 </rule>
32 <rule pattern="\d\d?\&#39;[a-zA-Z0-9]+">
33 <token type="LiteralNumberInteger"/>
34 </rule>
35 <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
36 <token type="LiteralNumberFloat"/>
37 </rule>
38 <rule pattern="\d+">
39 <token type="LiteralNumberInteger"/>
40 </rule>
41 <rule pattern="[\[\](){}|.,;!]">
42 <token type="Punctuation"/>
43 </rule>
44 <rule pattern=":-|--&gt;">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern="&#34;(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\[0-7]+\\|\\[&#34;\nabcefnrstv]|[^\\&#34;])*&#34;">
48 <token type="LiteralStringDouble"/>
49 </rule>
50 <rule pattern="&#39;(?:&#39;&#39;|[^&#39;])*&#39;">
51 <token type="LiteralStringAtom"/>
52 </rule>
53 <rule pattern="is\b">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(&lt;|&gt;|=&lt;|&gt;=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="(mod|div|not)\b">
60 <token type="Operator"/>
61 </rule>
62 <rule pattern="_">
63 <token type="Keyword"/>
64 </rule>
65 <rule pattern="([a-z]+)(:)">
66 <bygroups>
67 <token type="NameNamespace"/>
68 <token type="Punctuation"/>
69 </bygroups>
70 </rule>
71 <rule pattern="([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(:-|--&gt;)">
72 <bygroups>
73 <token type="NameFunction"/>
74 <token type="Text"/>
75 <token type="Operator"/>
76 </bygroups>
77 </rule>
78 <rule pattern="([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(\()">
79 <bygroups>
80 <token type="NameFunction"/>
81 <token type="Text"/>
82 <token type="Punctuation"/>
83 </bygroups>
84 </rule>
85 <rule pattern="[a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*">
86 <token type="LiteralStringAtom"/>
87 </rule>
88 <rule pattern="[#&amp;*+\-./:&lt;=&gt;?@\\^~¡-¿‐-〿]+">
89 <token type="LiteralStringAtom"/>
90 </rule>
91 <rule pattern="[A-Z_]\w*">
92 <token type="NameVariable"/>
93 </rule>
94 <rule pattern="\s+|[ -‏￰-�￯]">
95 <token type="Text"/>
96 </rule>
97 </state>
98 <state name="nested-comment">
99 <rule pattern="\*/">
100 <token type="CommentMultiline"/>
101 <pop depth="1"/>
102 </rule>
103 <rule pattern="/\*">
104 <token type="CommentMultiline"/>
105 <push/>
106 </rule>
107 <rule pattern="[^*/]+">
108 <token type="CommentMultiline"/>
109 </rule>
110 <rule pattern="[*/]">
111 <token type="CommentMultiline"/>
112 </rule>
113 </state>
114 </rules>
115</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml
new file mode 100644
index 0000000..e95e333
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/promql.xml
@@ -0,0 +1,123 @@
1<lexer>
2 <config>
3 <name>PromQL</name>
4 <alias>promql</alias>
5 <filename>*.promql</filename>
6 </config>
7 <rules>
8 <state name="range">
9 <rule pattern="\]">
10 <token type="Punctuation"/>
11 <pop depth="1"/>
12 </rule>
13 <rule pattern="[1-9][0-9]*[smhdwy]">
14 <token type="LiteralString"/>
15 </rule>
16 </state>
17 <state name="function">
18 <rule pattern="\)">
19 <token type="Operator"/>
20 <pop depth="1"/>
21 </rule>
22 <rule pattern="\(">
23 <token type="Operator"/>
24 <push/>
25 </rule>
26 <rule>
27 <pop depth="1"/>
28 </rule>
29 </state>
30 <state name="root">
31 <rule pattern="\n">
32 <token type="TextWhitespace"/>
33 </rule>
34 <rule pattern="\s+">
35 <token type="TextWhitespace"/>
36 </rule>
37 <rule pattern=",">
38 <token type="Punctuation"/>
39 </rule>
40 <rule pattern="(group_right|group_left|ignoring|without|offset|bool|on|by)\b">
41 <token type="Keyword"/>
42 </rule>
43 <rule pattern="(count_values|quantile|bottomk|stdvar|stddev|count|group|topk|sum|min|max|avg)\b">
44 <token type="Keyword"/>
45 </rule>
46 <rule pattern="(histogram_quantile|quantile_over_time|absent_over_time|stdvar_over_time|stddev_over_time|count_over_time|predict_linear|label_replace|max_over_time|avg_over_time|sum_over_time|days_in_month|min_over_time|day_of_month|holt_winters|day_of_week|label_join|sort_desc|clamp_max|timestamp|clamp_min|increase|changes|resets|vector|absent|idelta|minute|scalar|log10|delta|month|floor|deriv|round|irate|rate|year|sort|log2|sqrt|ceil|time|hour|abs|exp|ln)\b">
47 <token type="KeywordReserved"/>
48 </rule>
49 <rule pattern="[1-9][0-9]*[smhdwy]">
50 <token type="LiteralString"/>
51 </rule>
52 <rule pattern="-?[0-9]+\.[0-9]+">
53 <token type="LiteralNumberFloat"/>
54 </rule>
55 <rule pattern="-?[0-9]+">
56 <token type="LiteralNumberInteger"/>
57 </rule>
58 <rule pattern="#.*?$">
59 <token type="CommentSingle"/>
60 </rule>
61 <rule pattern="(\+|\-|\*|\/|\%|\^)">
62 <token type="Operator"/>
63 </rule>
64 <rule pattern="==|!=|&gt;=|&lt;=|&lt;|&gt;">
65 <token type="Operator"/>
66 </rule>
67 <rule pattern="and|or|unless">
68 <token type="OperatorWord"/>
69 </rule>
70 <rule pattern="[_a-zA-Z][a-zA-Z0-9_]+">
71 <token type="NameVariable"/>
72 </rule>
73 <rule pattern="([&#34;\&#39;])(.*?)([&#34;\&#39;])">
74 <bygroups>
75 <token type="Punctuation"/>
76 <token type="LiteralString"/>
77 <token type="Punctuation"/>
78 </bygroups>
79 </rule>
80 <rule pattern="\(">
81 <token type="Operator"/>
82 <push state="function"/>
83 </rule>
84 <rule pattern="\)">
85 <token type="Operator"/>
86 </rule>
87 <rule pattern="\{">
88 <token type="Punctuation"/>
89 <push state="labels"/>
90 </rule>
91 <rule pattern="\[">
92 <token type="Punctuation"/>
93 <push state="range"/>
94 </rule>
95 </state>
96 <state name="labels">
97 <rule pattern="\}">
98 <token type="Punctuation"/>
99 <pop depth="1"/>
100 </rule>
101 <rule pattern="\n">
102 <token type="TextWhitespace"/>
103 </rule>
104 <rule pattern="\s+">
105 <token type="TextWhitespace"/>
106 </rule>
107 <rule pattern=",">
108 <token type="Punctuation"/>
109 </rule>
110 <rule pattern="([_a-zA-Z][a-zA-Z0-9_]*?)(\s*?)(=~|!=|=|!~)(\s*?)(&#34;|&#39;)(.*?)(&#34;|&#39;)">
111 <bygroups>
112 <token type="NameLabel"/>
113 <token type="TextWhitespace"/>
114 <token type="Operator"/>
115 <token type="TextWhitespace"/>
116 <token type="Punctuation"/>
117 <token type="LiteralString"/>
118 <token type="Punctuation"/>
119 </bygroups>
120 </rule>
121 </state>
122 </rules>
123</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml
new file mode 100644
index 0000000..98ae7c8
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/protobuf.xml
@@ -0,0 +1,118 @@
1<lexer>
2 <config>
3 <name>Protocol Buffer</name>
4 <alias>protobuf</alias>
5 <alias>proto</alias>
6 <filename>*.proto</filename>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="[ \t]+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="[,;{}\[\]()&lt;&gt;]">
14 <token type="Punctuation"/>
15 </rule>
16 <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="/(\\\n)?\*(.|\n)*?\*(\\\n)?/">
20 <token type="CommentMultiline"/>
21 </rule>
22 <rule pattern="\b(extensions|required|repeated|optional|returns|default|option|packed|import|ctype|oneof|max|rpc|to)\b">
23 <token type="Keyword"/>
24 </rule>
25 <rule pattern="(sfixed32|sfixed64|fixed32|fixed64|sint32|sint64|double|string|uint32|uint64|int32|float|int64|bytes|bool)\b">
26 <token type="KeywordType"/>
27 </rule>
28 <rule pattern="(true|false)\b">
29 <token type="KeywordConstant"/>
30 </rule>
31 <rule pattern="(package)(\s+)">
32 <bygroups>
33 <token type="KeywordNamespace"/>
34 <token type="Text"/>
35 </bygroups>
36 <push state="package"/>
37 </rule>
38 <rule pattern="(message|extend)(\s+)">
39 <bygroups>
40 <token type="KeywordDeclaration"/>
41 <token type="Text"/>
42 </bygroups>
43 <push state="message"/>
44 </rule>
45 <rule pattern="(enum|group|service)(\s+)">
46 <bygroups>
47 <token type="KeywordDeclaration"/>
48 <token type="Text"/>
49 </bygroups>
50 <push state="type"/>
51 </rule>
52 <rule pattern="\&#34;.*?\&#34;">
53 <token type="LiteralString"/>
54 </rule>
55 <rule pattern="\&#39;.*?\&#39;">
56 <token type="LiteralString"/>
57 </rule>
58 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*">
59 <token type="LiteralNumberFloat"/>
60 </rule>
61 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
62 <token type="LiteralNumberFloat"/>
63 </rule>
64 <rule pattern="(\-?(inf|nan))\b">
65 <token type="LiteralNumberFloat"/>
66 </rule>
67 <rule pattern="0x[0-9a-fA-F]+[LlUu]*">
68 <token type="LiteralNumberHex"/>
69 </rule>
70 <rule pattern="0[0-7]+[LlUu]*">
71 <token type="LiteralNumberOct"/>
72 </rule>
73 <rule pattern="\d+[LlUu]*">
74 <token type="LiteralNumberInteger"/>
75 </rule>
76 <rule pattern="[+-=]">
77 <token type="Operator"/>
78 </rule>
79 <rule pattern="([a-zA-Z_][\w.]*)([ \t]*)(=)">
80 <bygroups>
81 <token type="Name"/>
82 <token type="Text"/>
83 <token type="Operator"/>
84 </bygroups>
85 </rule>
86 <rule pattern="[a-zA-Z_][\w.]*">
87 <token type="Name"/>
88 </rule>
89 </state>
90 <state name="package">
91 <rule pattern="[a-zA-Z_]\w*">
92 <token type="NameNamespace"/>
93 <pop depth="1"/>
94 </rule>
95 <rule>
96 <pop depth="1"/>
97 </rule>
98 </state>
99 <state name="message">
100 <rule pattern="[a-zA-Z_]\w*">
101 <token type="NameClass"/>
102 <pop depth="1"/>
103 </rule>
104 <rule>
105 <pop depth="1"/>
106 </rule>
107 </state>
108 <state name="type">
109 <rule pattern="[a-zA-Z_]\w*">
110 <token type="Name"/>
111 <pop depth="1"/>
112 </rule>
113 <rule>
114 <pop depth="1"/>
115 </rule>
116 </state>
117 </rules>
118</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml
new file mode 100644
index 0000000..fbb587c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/puppet.xml
@@ -0,0 +1,100 @@
1<lexer>
2 <config>
3 <name>Puppet</name>
4 <alias>puppet</alias>
5 <filename>*.pp</filename>
6 </config>
7 <rules>
8 <state name="strings">
9 <rule pattern="&#34;([^&#34;])*&#34;">
10 <token type="LiteralString"/>
11 </rule>
12 <rule pattern="&#39;(\\&#39;|[^&#39;])*&#39;">
13 <token type="LiteralString"/>
14 </rule>
15 </state>
16 <state name="root">
17 <rule>
18 <include state="comments"/>
19 </rule>
20 <rule>
21 <include state="keywords"/>
22 </rule>
23 <rule>
24 <include state="names"/>
25 </rule>
26 <rule>
27 <include state="numbers"/>
28 </rule>
29 <rule>
30 <include state="operators"/>
31 </rule>
32 <rule>
33 <include state="strings"/>
34 </rule>
35 <rule pattern="[]{}:(),;[]">
36 <token type="Punctuation"/>
37 </rule>
38 <rule pattern="[^\S\n]+">
39 <token type="Text"/>
40 </rule>
41 </state>
42 <state name="comments">
43 <rule pattern="\s*#.*$">
44 <token type="Comment"/>
45 </rule>
46 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
47 <token type="CommentMultiline"/>
48 </rule>
49 </state>
50 <state name="operators">
51 <rule pattern="(=&gt;|\?|&lt;|&gt;|=|\+|-|/|\*|~|!|\|)">
52 <token type="Operator"/>
53 </rule>
54 <rule pattern="(in|and|or|not)\b">
55 <token type="OperatorWord"/>
56 </rule>
57 </state>
58 <state name="names">
59 <rule pattern="[a-zA-Z_]\w*">
60 <token type="NameAttribute"/>
61 </rule>
62 <rule pattern="(\$\S+)(\[)(\S+)(\])">
63 <bygroups>
64 <token type="NameVariable"/>
65 <token type="Punctuation"/>
66 <token type="LiteralString"/>
67 <token type="Punctuation"/>
68 </bygroups>
69 </rule>
70 <rule pattern="\$\S+">
71 <token type="NameVariable"/>
72 </rule>
73 </state>
74 <state name="numbers">
75 <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
76 <token type="LiteralNumberFloat"/>
77 </rule>
78 <rule pattern="\d+[eE][+-]?[0-9]+j?">
79 <token type="LiteralNumberFloat"/>
80 </rule>
81 <rule pattern="0[0-7]+j?">
82 <token type="LiteralNumberOct"/>
83 </rule>
84 <rule pattern="0[xX][a-fA-F0-9]+">
85 <token type="LiteralNumberHex"/>
86 </rule>
87 <rule pattern="\d+L">
88 <token type="LiteralNumberIntegerLong"/>
89 </rule>
90 <rule pattern="\d+j?">
91 <token type="LiteralNumberInteger"/>
92 </rule>
93 </state>
94 <state name="keywords">
95 <rule pattern="(?i)(nagios_servicedependency|nagios_serviceescalation|nagios_hostdependency|nagios_hostescalation|nagios_serviceextinfo|nagios_contactgroup|nagios_servicegroup|ssh_authorized_key|nagios_hostextinfo|nagios_timeperiod|nagios_hostgroup|macauthorization|create_resources|inline_template|scheduled_task|nagios_contact|nagios_command|nagios_service|nagios_host|configured|versioncmp|selboolean|filebucket|shellquote|selmodule|extlookup|unmounted|interface|contained|resources|fqdn_rand|installed|mailalias|directory|subscribe|loglevel|computer|maillist|schedule|generate|template|regsubst|inherits|present|sprintf|service|stopped|running|package|realize|defined|mounted|warning|yumrepo|k5login|include|default|notice|purged|latest|router|search|sshkey|define|notify|absent|before|augeas|import|tagged|split|undef|mount|check|alert|class|audit|debug|alias|stage|elsif|false|zpool|emerg|noop|sha1|vlan|exec|fail|file|else|host|info|cron|role|link|zone|tidy|true|node|case|user|crit|err|mcx|zfs|md5|tag|if)\b">
96 <token type="Keyword"/>
97 </rule>
98 </state>
99 </rules>
100</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml
new file mode 100644
index 0000000..e928672
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python.xml
@@ -0,0 +1,589 @@
1<lexer>
2 <config>
3 <name>Python</name>
4 <alias>python</alias>
5 <alias>py</alias>
6 <alias>sage</alias>
7 <alias>python3</alias>
8 <alias>py3</alias>
9 <filename>*.py</filename>
10 <filename>*.pyi</filename>
11 <filename>*.pyw</filename>
12 <filename>*.jy</filename>
13 <filename>*.sage</filename>
14 <filename>*.sc</filename>
15 <filename>SConstruct</filename>
16 <filename>SConscript</filename>
17 <filename>*.bzl</filename>
18 <filename>BUCK</filename>
19 <filename>BUILD</filename>
20 <filename>BUILD.bazel</filename>
21 <filename>WORKSPACE</filename>
22 <filename>*.tac</filename>
23 <mime_type>text/x-python</mime_type>
24 <mime_type>application/x-python</mime_type>
25 <mime_type>text/x-python3</mime_type>
26 <mime_type>application/x-python3</mime_type>
27 </config>
28 <rules>
29 <state name="numbers">
30 <rule pattern="(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?">
31 <token type="LiteralNumberFloat"/>
32 </rule>
33 <rule pattern="\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?">
34 <token type="LiteralNumberFloat"/>
35 </rule>
36 <rule pattern="0[oO](?:_?[0-7])+">
37 <token type="LiteralNumberOct"/>
38 </rule>
39 <rule pattern="0[bB](?:_?[01])+">
40 <token type="LiteralNumberBin"/>
41 </rule>
42 <rule pattern="0[xX](?:_?[a-fA-F0-9])+">
43 <token type="LiteralNumberHex"/>
44 </rule>
45 <rule pattern="\d(?:_?\d)*">
46 <token type="LiteralNumberInteger"/>
47 </rule>
48 </state>
49 <state name="expr">
50 <rule pattern="(?i)(rf|fr)(&#34;&#34;&#34;)">
51 <bygroups>
52 <token type="LiteralStringAffix"/>
53 <token type="LiteralStringDouble"/>
54 </bygroups>
55 <combined state="rfstringescape" state="tdqf"/>
56 </rule>
57 <rule pattern="(?i)(rf|fr)(&#39;&#39;&#39;)">
58 <bygroups>
59 <token type="LiteralStringAffix"/>
60 <token type="LiteralStringSingle"/>
61 </bygroups>
62 <combined state="rfstringescape" state="tsqf"/>
63 </rule>
64 <rule pattern="(?i)(rf|fr)(&#34;)">
65 <bygroups>
66 <token type="LiteralStringAffix"/>
67 <token type="LiteralStringDouble"/>
68 </bygroups>
69 <combined state="rfstringescape" state="dqf"/>
70 </rule>
71 <rule pattern="(?i)(rf|fr)(&#39;)">
72 <bygroups>
73 <token type="LiteralStringAffix"/>
74 <token type="LiteralStringSingle"/>
75 </bygroups>
76 <combined state="rfstringescape" state="sqf"/>
77 </rule>
78 <rule pattern="([fF])(&#34;&#34;&#34;)">
79 <bygroups>
80 <token type="LiteralStringAffix"/>
81 <token type="LiteralStringDouble"/>
82 </bygroups>
83 <combined state="fstringescape" state="tdqf"/>
84 </rule>
85 <rule pattern="([fF])(&#39;&#39;&#39;)">
86 <bygroups>
87 <token type="LiteralStringAffix"/>
88 <token type="LiteralStringSingle"/>
89 </bygroups>
90 <combined state="fstringescape" state="tsqf"/>
91 </rule>
92 <rule pattern="([fF])(&#34;)">
93 <bygroups>
94 <token type="LiteralStringAffix"/>
95 <token type="LiteralStringDouble"/>
96 </bygroups>
97 <combined state="fstringescape" state="dqf"/>
98 </rule>
99 <rule pattern="([fF])(&#39;)">
100 <bygroups>
101 <token type="LiteralStringAffix"/>
102 <token type="LiteralStringSingle"/>
103 </bygroups>
104 <combined state="fstringescape" state="sqf"/>
105 </rule>
106 <rule pattern="(?i)(rb|br|r)(&#34;&#34;&#34;)">
107 <bygroups>
108 <token type="LiteralStringAffix"/>
109 <token type="LiteralStringDouble"/>
110 </bygroups>
111 <push state="tdqs"/>
112 </rule>
113 <rule pattern="(?i)(rb|br|r)(&#39;&#39;&#39;)">
114 <bygroups>
115 <token type="LiteralStringAffix"/>
116 <token type="LiteralStringSingle"/>
117 </bygroups>
118 <push state="tsqs"/>
119 </rule>
120 <rule pattern="(?i)(rb|br|r)(&#34;)">
121 <bygroups>
122 <token type="LiteralStringAffix"/>
123 <token type="LiteralStringDouble"/>
124 </bygroups>
125 <push state="dqs"/>
126 </rule>
127 <rule pattern="(?i)(rb|br|r)(&#39;)">
128 <bygroups>
129 <token type="LiteralStringAffix"/>
130 <token type="LiteralStringSingle"/>
131 </bygroups>
132 <push state="sqs"/>
133 </rule>
134 <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
135 <bygroups>
136 <token type="LiteralStringAffix"/>
137 <token type="LiteralStringDouble"/>
138 </bygroups>
139 <combined state="stringescape" state="tdqs"/>
140 </rule>
141 <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
142 <bygroups>
143 <token type="LiteralStringAffix"/>
144 <token type="LiteralStringSingle"/>
145 </bygroups>
146 <combined state="stringescape" state="tsqs"/>
147 </rule>
148 <rule pattern="([uUbB]?)(&#34;)">
149 <bygroups>
150 <token type="LiteralStringAffix"/>
151 <token type="LiteralStringDouble"/>
152 </bygroups>
153 <combined state="stringescape" state="dqs"/>
154 </rule>
155 <rule pattern="([uUbB]?)(&#39;)">
156 <bygroups>
157 <token type="LiteralStringAffix"/>
158 <token type="LiteralStringSingle"/>
159 </bygroups>
160 <combined state="stringescape" state="sqs"/>
161 </rule>
162 <rule pattern="[^\S\n]+">
163 <token type="Text"/>
164 </rule>
165 <rule>
166 <include state="numbers"/>
167 </rule>
168 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|:=|[-~+/*%=&lt;&gt;&amp;^|.]">
169 <token type="Operator"/>
170 </rule>
171 <rule pattern="[]{}:(),;[]">
172 <token type="Punctuation"/>
173 </rule>
174 <rule pattern="(in|is|and|or|not)\b">
175 <token type="OperatorWord"/>
176 </rule>
177 <rule>
178 <include state="expr-keywords"/>
179 </rule>
180 <rule>
181 <include state="builtins"/>
182 </rule>
183 <rule>
184 <include state="magicfuncs"/>
185 </rule>
186 <rule>
187 <include state="magicvars"/>
188 </rule>
189 <rule>
190 <include state="name"/>
191 </rule>
192 </state>
193 <state name="fstrings-double">
194 <rule pattern="\}">
195 <token type="LiteralStringInterpol"/>
196 </rule>
197 <rule pattern="\{">
198 <token type="LiteralStringInterpol"/>
199 <push state="expr-inside-fstring"/>
200 </rule>
201 <rule pattern="[^\\\&#39;&#34;{}\n]+">
202 <token type="LiteralStringDouble"/>
203 </rule>
204 <rule pattern="[\&#39;&#34;\\]">
205 <token type="LiteralStringDouble"/>
206 </rule>
207 </state>
208 <state name="keywords">
209 <rule pattern="(yield from|nonlocal|continue|finally|except|lambda|assert|global|return|raise|yield|while|break|await|async|pass|else|elif|with|try|for|del|as|if)\b">
210 <token type="Keyword"/>
211 </rule>
212 <rule pattern="(False|True|None)\b">
213 <token type="KeywordConstant"/>
214 </rule>
215 </state>
216 <state name="dqs">
217 <rule pattern="&#34;">
218 <token type="LiteralStringDouble"/>
219 <pop depth="1"/>
220 </rule>
221 <rule pattern="\\\\|\\&#34;|\\\n">
222 <token type="LiteralStringEscape"/>
223 </rule>
224 <rule>
225 <include state="strings-double"/>
226 </rule>
227 </state>
228 <state name="fromimport">
229 <rule pattern="(\s+)(import)\b">
230 <bygroups>
231 <token type="Text"/>
232 <token type="KeywordNamespace"/>
233 </bygroups>
234 <pop depth="1"/>
235 </rule>
236 <rule pattern="\.">
237 <token type="NameNamespace"/>
238 </rule>
239 <rule pattern="None\b">
240 <token type="NameBuiltinPseudo"/>
241 <pop depth="1"/>
242 </rule>
243 <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
244 <token type="NameNamespace"/>
245 </rule>
246 <rule>
247 <pop depth="1"/>
248 </rule>
249 </state>
250 <state name="builtins">
251 <rule pattern="(?&lt;!\.)(staticmethod|classmethod|memoryview|__import__|issubclass|isinstance|frozenset|bytearray|enumerate|reversed|property|compile|complex|delattr|hasattr|setattr|globals|getattr|divmod|filter|locals|format|object|sorted|slice|print|bytes|range|input|tuple|round|super|float|eval|list|dict|repr|type|vars|hash|next|bool|open|iter|oct|pow|min|zip|max|map|bin|len|set|any|dir|all|abs|str|sum|chr|int|hex|ord|id)\b">
252 <token type="NameBuiltin"/>
253 </rule>
254 <rule pattern="(?&lt;!\.)(self|Ellipsis|NotImplemented|cls)\b">
255 <token type="NameBuiltinPseudo"/>
256 </rule>
257 <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|ConnectionAbortedError|ConnectionRefusedError|UnicodeTranslateError|ConnectionResetError|ModuleNotFoundError|NotImplementedError|FloatingPointError|StopAsyncIteration|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|NotADirectoryError|ProcessLookupError|ZeroDivisionError|IsADirectoryError|FileNotFoundError|UnboundLocalError|KeyboardInterrupt|ChildProcessError|EnvironmentError|IndentationError|InterruptedError|BlockingIOError|ArithmeticError|ConnectionError|BrokenPipeError|FileExistsError|ResourceWarning|PermissionError|RuntimeWarning|ReferenceError|AttributeError|AssertionError|UnicodeWarning|RecursionError|StopIteration|BaseException|OverflowError|SyntaxWarning|FutureWarning|GeneratorExit|ImportWarning|UnicodeError|TimeoutError|WindowsError|RuntimeError|BytesWarning|SystemError|UserWarning|MemoryError|ImportError|LookupError|BufferError|SyntaxError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|TabError|EOFError|KeyError|VMSError|Warning|OSError|IOError)\b">
258 <token type="NameException"/>
259 </rule>
260 </state>
261 <state name="classname">
262 <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
263 <token type="NameClass"/>
264 <pop depth="1"/>
265 </rule>
266 </state>
267 <state name="import">
268 <rule pattern="(\s+)(as)(\s+)">
269 <bygroups>
270 <token type="Text"/>
271 <token type="Keyword"/>
272 <token type="Text"/>
273 </bygroups>
274 </rule>
275 <rule pattern="\.">
276 <token type="NameNamespace"/>
277 </rule>
278 <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
279 <token type="NameNamespace"/>
280 </rule>
281 <rule pattern="(\s*)(,)(\s*)">
282 <bygroups>
283 <token type="Text"/>
284 <token type="Operator"/>
285 <token type="Text"/>
286 </bygroups>
287 </rule>
288 <rule>
289 <pop depth="1"/>
290 </rule>
291 </state>
292 <state name="tsqs">
293 <rule pattern="&#39;&#39;&#39;">
294 <token type="LiteralStringSingle"/>
295 <pop depth="1"/>
296 </rule>
297 <rule>
298 <include state="strings-single"/>
299 </rule>
300 <rule pattern="\n">
301 <token type="LiteralStringSingle"/>
302 </rule>
303 </state>
304 <state name="strings-double">
305 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
306 <token type="LiteralStringInterpol"/>
307 </rule>
308 <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
309 <token type="LiteralStringInterpol"/>
310 </rule>
311 <rule pattern="[^\\\&#39;&#34;%{\n]+">
312 <token type="LiteralStringDouble"/>
313 </rule>
314 <rule pattern="[\&#39;&#34;\\]">
315 <token type="LiteralStringDouble"/>
316 </rule>
317 <rule pattern="%|(\{{1,2})">
318 <token type="LiteralStringDouble"/>
319 </rule>
320 </state>
321 <state name="tdqf">
322 <rule pattern="&#34;&#34;&#34;">
323 <token type="LiteralStringDouble"/>
324 <pop depth="1"/>
325 </rule>
326 <rule>
327 <include state="fstrings-double"/>
328 </rule>
329 <rule pattern="\n">
330 <token type="LiteralStringDouble"/>
331 </rule>
332 </state>
333 <state name="expr-inside-fstring-inner">
334 <rule pattern="[{([]">
335 <token type="Punctuation"/>
336 <push state="expr-inside-fstring-inner"/>
337 </rule>
338 <rule pattern="[])}]">
339 <token type="Punctuation"/>
340 <pop depth="1"/>
341 </rule>
342 <rule pattern="\s+">
343 <token type="Text"/>
344 </rule>
345 <rule>
346 <include state="expr"/>
347 </rule>
348 </state>
349 <state name="sqs">
350 <rule pattern="&#39;">
351 <token type="LiteralStringSingle"/>
352 <pop depth="1"/>
353 </rule>
354 <rule pattern="\\\\|\\&#39;|\\\n">
355 <token type="LiteralStringEscape"/>
356 </rule>
357 <rule>
358 <include state="strings-single"/>
359 </rule>
360 </state>
361 <state name="funcname">
362 <rule>
363 <include state="magicfuncs"/>
364 </rule>
365 <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
366 <token type="NameFunction"/>
367 <pop depth="1"/>
368 </rule>
369 <rule>
370 <pop depth="1"/>
371 </rule>
372 </state>
373 <state name="expr-keywords">
374 <rule pattern="(yield from|async for|lambda|yield|await|else|for|if)\b">
375 <token type="Keyword"/>
376 </rule>
377 <rule pattern="(False|True|None)\b">
378 <token type="KeywordConstant"/>
379 </rule>
380 </state>
381 <state name="name">
382 <rule pattern="@[_\p{L}][_\p{L}\p{N}]*">
383 <token type="NameDecorator"/>
384 </rule>
385 <rule pattern="@">
386 <token type="Operator"/>
387 </rule>
388 <rule pattern="[_\p{L}][_\p{L}\p{N}]*">
389 <token type="Name"/>
390 </rule>
391 </state>
392 <state name="magicfuncs">
393 <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__length_hint__|__rfloordiv__|__ifloordiv__|__itruediv__|__contains__|__floordiv__|__rtruediv__|__reversed__|__setitem__|__complex__|__rdivmod__|__delattr__|__rmatmul__|__ilshift__|__prepare__|__delitem__|__rrshift__|__imatmul__|__rlshift__|__setattr__|__truediv__|__getitem__|__missing__|__getattr__|__irshift__|__rshift__|__format__|__invert__|__matmul__|__divmod__|__delete__|__aenter__|__lshift__|__await__|__bytes__|__anext__|__aiter__|__aexit__|__round__|__float__|__enter__|__index__|__iadd__|__ipow__|__rpow__|__iter__|__init__|__ixor__|__rmul__|__rmod__|__imul__|__imod__|__iand__|__hash__|__rsub__|__exit__|__rxor__|__bool__|__call__|__rand__|__next__|__radd__|__isub__|__repr__|__set__|__add__|__new__|__neg__|__xor__|__and__|__mul__|__mod__|__sub__|__len__|__str__|__ror__|__ior__|__pos__|__del__|__get__|__dir__|__abs__|__int__|__pow__|__eq__|__gt__|__le__|__lt__|__ne__|__or__|__ge__)\b">
394 <token type="NameFunctionMagic"/>
395 </rule>
396 </state>
397 <state name="root">
398 <rule pattern="\n">
399 <token type="Text"/>
400 </rule>
401 <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
402 <bygroups>
403 <token type="Text"/>
404 <token type="LiteralStringAffix"/>
405 <token type="LiteralStringDoc"/>
406 </bygroups>
407 </rule>
408 <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
409 <bygroups>
410 <token type="Text"/>
411 <token type="LiteralStringAffix"/>
412 <token type="LiteralStringDoc"/>
413 </bygroups>
414 </rule>
415 <rule pattern="\A#!.+$">
416 <token type="CommentHashbang"/>
417 </rule>
418 <rule pattern="#.*$">
419 <token type="CommentSingle"/>
420 </rule>
421 <rule pattern="\\\n">
422 <token type="Text"/>
423 </rule>
424 <rule pattern="\\">
425 <token type="Text"/>
426 </rule>
427 <rule>
428 <include state="keywords"/>
429 </rule>
430 <rule pattern="(def)((?:\s|\\\s)+)">
431 <bygroups>
432 <token type="Keyword"/>
433 <token type="Text"/>
434 </bygroups>
435 <push state="funcname"/>
436 </rule>
437 <rule pattern="(class)((?:\s|\\\s)+)">
438 <bygroups>
439 <token type="Keyword"/>
440 <token type="Text"/>
441 </bygroups>
442 <push state="classname"/>
443 </rule>
444 <rule pattern="(from)((?:\s|\\\s)+)">
445 <bygroups>
446 <token type="KeywordNamespace"/>
447 <token type="Text"/>
448 </bygroups>
449 <push state="fromimport"/>
450 </rule>
451 <rule pattern="(import)((?:\s|\\\s)+)">
452 <bygroups>
453 <token type="KeywordNamespace"/>
454 <token type="Text"/>
455 </bygroups>
456 <push state="import"/>
457 </rule>
458 <rule>
459 <include state="expr"/>
460 </rule>
461 </state>
462 <state name="fstrings-single">
463 <rule pattern="\}">
464 <token type="LiteralStringInterpol"/>
465 </rule>
466 <rule pattern="\{">
467 <token type="LiteralStringInterpol"/>
468 <push state="expr-inside-fstring"/>
469 </rule>
470 <rule pattern="[^\\\&#39;&#34;{}\n]+">
471 <token type="LiteralStringSingle"/>
472 </rule>
473 <rule pattern="[\&#39;&#34;\\]">
474 <token type="LiteralStringSingle"/>
475 </rule>
476 </state>
477 <state name="magicvars">
478 <rule pattern="(__annotations__|__kwdefaults__|__qualname__|__objclass__|__defaults__|__closure__|__globals__|__weakref__|__module__|__class__|__bases__|__slots__|__file__|__code__|__name__|__func__|__dict__|__self__|__mro__|__doc__)\b">
479 <token type="NameVariableMagic"/>
480 </rule>
481 </state>
482 <state name="tsqf">
483 <rule pattern="&#39;&#39;&#39;">
484 <token type="LiteralStringSingle"/>
485 <pop depth="1"/>
486 </rule>
487 <rule>
488 <include state="fstrings-single"/>
489 </rule>
490 <rule pattern="\n">
491 <token type="LiteralStringSingle"/>
492 </rule>
493 </state>
494 <state name="strings-single">
495 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]">
496 <token type="LiteralStringInterpol"/>
497 </rule>
498 <rule pattern="\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[&lt;&gt;=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}">
499 <token type="LiteralStringInterpol"/>
500 </rule>
501 <rule pattern="[^\\\&#39;&#34;%{\n]+">
502 <token type="LiteralStringSingle"/>
503 </rule>
504 <rule pattern="[\&#39;&#34;\\]">
505 <token type="LiteralStringSingle"/>
506 </rule>
507 <rule pattern="%|(\{{1,2})">
508 <token type="LiteralStringSingle"/>
509 </rule>
510 </state>
511 <state name="rfstringescape">
512 <rule pattern="\{\{">
513 <token type="LiteralStringEscape"/>
514 </rule>
515 <rule pattern="\}\}">
516 <token type="LiteralStringEscape"/>
517 </rule>
518 </state>
519 <state name="sqf">
520 <rule pattern="&#39;">
521 <token type="LiteralStringSingle"/>
522 <pop depth="1"/>
523 </rule>
524 <rule pattern="\\\\|\\&#39;|\\\n">
525 <token type="LiteralStringEscape"/>
526 </rule>
527 <rule>
528 <include state="fstrings-single"/>
529 </rule>
530 </state>
531 <state name="dqf">
532 <rule pattern="&#34;">
533 <token type="LiteralStringDouble"/>
534 <pop depth="1"/>
535 </rule>
536 <rule pattern="\\\\|\\&#34;|\\\n">
537 <token type="LiteralStringEscape"/>
538 </rule>
539 <rule>
540 <include state="fstrings-double"/>
541 </rule>
542 </state>
543 <state name="expr-inside-fstring">
544 <rule pattern="[{([]">
545 <token type="Punctuation"/>
546 <push state="expr-inside-fstring-inner"/>
547 </rule>
548 <rule pattern="(=\s*)?(\![sraf])?\}">
549 <token type="LiteralStringInterpol"/>
550 <pop depth="1"/>
551 </rule>
552 <rule pattern="(=\s*)?(\![sraf])?:">
553 <token type="LiteralStringInterpol"/>
554 <pop depth="1"/>
555 </rule>
556 <rule pattern="\s+">
557 <token type="Text"/>
558 </rule>
559 <rule>
560 <include state="expr"/>
561 </rule>
562 </state>
563 <state name="tdqs">
564 <rule pattern="&#34;&#34;&#34;">
565 <token type="LiteralStringDouble"/>
566 <pop depth="1"/>
567 </rule>
568 <rule>
569 <include state="strings-double"/>
570 </rule>
571 <rule pattern="\n">
572 <token type="LiteralStringDouble"/>
573 </rule>
574 </state>
575 <state name="fstringescape">
576 <rule>
577 <include state="rfstringescape"/>
578 </rule>
579 <rule>
580 <include state="stringescape"/>
581 </rule>
582 </state>
583 <state name="stringescape">
584 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
585 <token type="LiteralStringEscape"/>
586 </rule>
587 </state>
588 </rules>
589</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml
new file mode 100644
index 0000000..3297a22
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/python_2.xml
@@ -0,0 +1,356 @@
1<lexer>
2 <config>
3 <name>Python 2</name>
4 <alias>python2</alias>
5 <alias>py2</alias>
6 <mime_type>text/x-python2</mime_type>
7 <mime_type>application/x-python2</mime_type>
8 </config>
9 <rules>
10 <state name="tdqs">
11 <rule pattern="&#34;&#34;&#34;">
12 <token type="LiteralStringDouble"/>
13 <pop depth="1"/>
14 </rule>
15 <rule>
16 <include state="strings-double"/>
17 </rule>
18 <rule pattern="\n">
19 <token type="LiteralStringDouble"/>
20 </rule>
21 </state>
22 <state name="name">
23 <rule pattern="@[\w.]+">
24 <token type="NameDecorator"/>
25 </rule>
26 <rule pattern="[a-zA-Z_]\w*">
27 <token type="Name"/>
28 </rule>
29 </state>
30 <state name="magicfuncs">
31 <rule pattern="(__instancecheck__|__subclasscheck__|__getattribute__|__rfloordiv__|__ifloordiv__|__setslice__|__getslice__|__contains__|__reversed__|__floordiv__|__rtruediv__|__itruediv__|__delslice__|__rlshift__|__rrshift__|__delitem__|__rdivmod__|__nonzero__|__missing__|__delattr__|__setattr__|__irshift__|__complex__|__setitem__|__getitem__|__truediv__|__unicode__|__ilshift__|__getattr__|__delete__|__coerce__|__invert__|__lshift__|__divmod__|__rshift__|__enter__|__index__|__float__|__iadd__|__rsub__|__init__|__imul__|__rpow__|__repr__|__rmul__|__isub__|__iter__|__rmod__|__ixor__|__call__|__imod__|__long__|__hash__|__rxor__|__idiv__|__iand__|__rdiv__|__ipow__|__rcmp__|__rand__|__exit__|__radd__|__str__|__cmp__|__pos__|__pow__|__oct__|__new__|__neg__|__mul__|__mod__|__set__|__xor__|__sub__|__len__|__and__|__get__|__rop__|__add__|__ior__|__div__|__iop__|__int__|__abs__|__hex__|__ror__|__del__|__eq__|__or__|__ne__|__lt__|__le__|__ge__|__gt__|__op__)\b">
32 <token type="NameFunctionMagic"/>
33 </rule>
34 </state>
35 <state name="keywords">
36 <rule pattern="(yield from|continue|finally|lambda|assert|global|except|return|print|yield|while|break|raise|elif|pass|exec|else|with|try|for|del|as|if)\b">
37 <token type="Keyword"/>
38 </rule>
39 </state>
40 <state name="tsqs">
41 <rule pattern="&#39;&#39;&#39;">
42 <token type="LiteralStringSingle"/>
43 <pop depth="1"/>
44 </rule>
45 <rule>
46 <include state="strings-single"/>
47 </rule>
48 <rule pattern="\n">
49 <token type="LiteralStringSingle"/>
50 </rule>
51 </state>
52 <state name="stringescape">
53 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})">
54 <token type="LiteralStringEscape"/>
55 </rule>
56 </state>
57 <state name="numbers">
58 <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?">
59 <token type="LiteralNumberFloat"/>
60 </rule>
61 <rule pattern="\d+[eE][+-]?[0-9]+j?">
62 <token type="LiteralNumberFloat"/>
63 </rule>
64 <rule pattern="0[0-7]+j?">
65 <token type="LiteralNumberOct"/>
66 </rule>
67 <rule pattern="0[bB][01]+">
68 <token type="LiteralNumberBin"/>
69 </rule>
70 <rule pattern="0[xX][a-fA-F0-9]+">
71 <token type="LiteralNumberHex"/>
72 </rule>
73 <rule pattern="\d+L">
74 <token type="LiteralNumberIntegerLong"/>
75 </rule>
76 <rule pattern="\d+j?">
77 <token type="LiteralNumberInteger"/>
78 </rule>
79 </state>
80 <state name="import">
81 <rule pattern="(?:[ \t]|\\\n)+">
82 <token type="Text"/>
83 </rule>
84 <rule pattern="as\b">
85 <token type="KeywordNamespace"/>
86 </rule>
87 <rule pattern=",">
88 <token type="Operator"/>
89 </rule>
90 <rule pattern="[a-zA-Z_][\w.]*">
91 <token type="NameNamespace"/>
92 </rule>
93 <rule>
94 <pop depth="1"/>
95 </rule>
96 </state>
97 <state name="magicvars">
98 <rule pattern="(__metaclass__|__defaults__|__globals__|__closure__|__weakref__|__module__|__slots__|__class__|__bases__|__file__|__func__|__dict__|__name__|__self__|__code__|__mro__|__doc__)\b">
99 <token type="NameVariableMagic"/>
100 </rule>
101 </state>
102 <state name="fromimport">
103 <rule pattern="(?:[ \t]|\\\n)+">
104 <token type="Text"/>
105 </rule>
106 <rule pattern="import\b">
107 <token type="KeywordNamespace"/>
108 <pop depth="1"/>
109 </rule>
110 <rule pattern="None\b">
111 <token type="NameBuiltinPseudo"/>
112 <pop depth="1"/>
113 </rule>
114 <rule pattern="[a-zA-Z_.][\w.]*">
115 <token type="NameNamespace"/>
116 </rule>
117 <rule>
118 <pop depth="1"/>
119 </rule>
120 </state>
121 <state name="strings-single">
122 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
123 <token type="LiteralStringInterpol"/>
124 </rule>
125 <rule pattern="[^\\\&#39;&#34;%\n]+">
126 <token type="LiteralStringSingle"/>
127 </rule>
128 <rule pattern="[\&#39;&#34;\\]">
129 <token type="LiteralStringSingle"/>
130 </rule>
131 <rule pattern="%">
132 <token type="LiteralStringSingle"/>
133 </rule>
134 </state>
135 <state name="funcname">
136 <rule>
137 <include state="magicfuncs"/>
138 </rule>
139 <rule pattern="[a-zA-Z_]\w*">
140 <token type="NameFunction"/>
141 <pop depth="1"/>
142 </rule>
143 <rule>
144 <pop depth="1"/>
145 </rule>
146 </state>
147 <state name="classname">
148 <rule pattern="[a-zA-Z_]\w*">
149 <token type="NameClass"/>
150 <pop depth="1"/>
151 </rule>
152 </state>
153 <state name="backtick">
154 <rule pattern="`.*?`">
155 <token type="LiteralStringBacktick"/>
156 </rule>
157 </state>
158 <state name="strings-double">
159 <rule pattern="%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
160 <token type="LiteralStringInterpol"/>
161 </rule>
162 <rule pattern="[^\\\&#39;&#34;%\n]+">
163 <token type="LiteralStringDouble"/>
164 </rule>
165 <rule pattern="[\&#39;&#34;\\]">
166 <token type="LiteralStringDouble"/>
167 </rule>
168 <rule pattern="%">
169 <token type="LiteralStringDouble"/>
170 </rule>
171 </state>
172 <state name="dqs">
173 <rule pattern="&#34;">
174 <token type="LiteralStringDouble"/>
175 <pop depth="1"/>
176 </rule>
177 <rule pattern="\\\\|\\&#34;|\\\n">
178 <token type="LiteralStringEscape"/>
179 </rule>
180 <rule>
181 <include state="strings-double"/>
182 </rule>
183 </state>
184 <state name="root">
185 <rule pattern="\n">
186 <token type="Text"/>
187 </rule>
188 <rule pattern="^(\s*)([rRuUbB]{,2})(&#34;&#34;&#34;(?:.|\n)*?&#34;&#34;&#34;)">
189 <bygroups>
190 <token type="Text"/>
191 <token type="LiteralStringAffix"/>
192 <token type="LiteralStringDoc"/>
193 </bygroups>
194 </rule>
195 <rule pattern="^(\s*)([rRuUbB]{,2})(&#39;&#39;&#39;(?:.|\n)*?&#39;&#39;&#39;)">
196 <bygroups>
197 <token type="Text"/>
198 <token type="LiteralStringAffix"/>
199 <token type="LiteralStringDoc"/>
200 </bygroups>
201 </rule>
202 <rule pattern="[^\S\n]+">
203 <token type="Text"/>
204 </rule>
205 <rule pattern="\A#!.+$">
206 <token type="CommentHashbang"/>
207 </rule>
208 <rule pattern="#.*$">
209 <token type="CommentSingle"/>
210 </rule>
211 <rule pattern="[]{}:(),;[]">
212 <token type="Punctuation"/>
213 </rule>
214 <rule pattern="\\\n">
215 <token type="Text"/>
216 </rule>
217 <rule pattern="\\">
218 <token type="Text"/>
219 </rule>
220 <rule pattern="(in|is|and|or|not)\b">
221 <token type="OperatorWord"/>
222 </rule>
223 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|[-~+/*%=&lt;&gt;&amp;^|.]">
224 <token type="Operator"/>
225 </rule>
226 <rule>
227 <include state="keywords"/>
228 </rule>
229 <rule pattern="(def)((?:\s|\\\s)+)">
230 <bygroups>
231 <token type="Keyword"/>
232 <token type="Text"/>
233 </bygroups>
234 <push state="funcname"/>
235 </rule>
236 <rule pattern="(class)((?:\s|\\\s)+)">
237 <bygroups>
238 <token type="Keyword"/>
239 <token type="Text"/>
240 </bygroups>
241 <push state="classname"/>
242 </rule>
243 <rule pattern="(from)((?:\s|\\\s)+)">
244 <bygroups>
245 <token type="KeywordNamespace"/>
246 <token type="Text"/>
247 </bygroups>
248 <push state="fromimport"/>
249 </rule>
250 <rule pattern="(import)((?:\s|\\\s)+)">
251 <bygroups>
252 <token type="KeywordNamespace"/>
253 <token type="Text"/>
254 </bygroups>
255 <push state="import"/>
256 </rule>
257 <rule>
258 <include state="builtins"/>
259 </rule>
260 <rule>
261 <include state="magicfuncs"/>
262 </rule>
263 <rule>
264 <include state="magicvars"/>
265 </rule>
266 <rule>
267 <include state="backtick"/>
268 </rule>
269 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;&#34;&#34;)">
270 <bygroups>
271 <token type="LiteralStringAffix"/>
272 <token type="LiteralStringDouble"/>
273 </bygroups>
274 <push state="tdqs"/>
275 </rule>
276 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;&#39;&#39;)">
277 <bygroups>
278 <token type="LiteralStringAffix"/>
279 <token type="LiteralStringSingle"/>
280 </bygroups>
281 <push state="tsqs"/>
282 </rule>
283 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#34;)">
284 <bygroups>
285 <token type="LiteralStringAffix"/>
286 <token type="LiteralStringDouble"/>
287 </bygroups>
288 <push state="dqs"/>
289 </rule>
290 <rule pattern="([rR]|[uUbB][rR]|[rR][uUbB])(&#39;)">
291 <bygroups>
292 <token type="LiteralStringAffix"/>
293 <token type="LiteralStringSingle"/>
294 </bygroups>
295 <push state="sqs"/>
296 </rule>
297 <rule pattern="([uUbB]?)(&#34;&#34;&#34;)">
298 <bygroups>
299 <token type="LiteralStringAffix"/>
300 <token type="LiteralStringDouble"/>
301 </bygroups>
302 <combined state="stringescape" state="tdqs"/>
303 </rule>
304 <rule pattern="([uUbB]?)(&#39;&#39;&#39;)">
305 <bygroups>
306 <token type="LiteralStringAffix"/>
307 <token type="LiteralStringSingle"/>
308 </bygroups>
309 <combined state="stringescape" state="tsqs"/>
310 </rule>
311 <rule pattern="([uUbB]?)(&#34;)">
312 <bygroups>
313 <token type="LiteralStringAffix"/>
314 <token type="LiteralStringDouble"/>
315 </bygroups>
316 <combined state="stringescape" state="dqs"/>
317 </rule>
318 <rule pattern="([uUbB]?)(&#39;)">
319 <bygroups>
320 <token type="LiteralStringAffix"/>
321 <token type="LiteralStringSingle"/>
322 </bygroups>
323 <combined state="stringescape" state="sqs"/>
324 </rule>
325 <rule>
326 <include state="name"/>
327 </rule>
328 <rule>
329 <include state="numbers"/>
330 </rule>
331 </state>
332 <state name="sqs">
333 <rule pattern="&#39;">
334 <token type="LiteralStringSingle"/>
335 <pop depth="1"/>
336 </rule>
337 <rule pattern="\\\\|\\&#39;|\\\n">
338 <token type="LiteralStringEscape"/>
339 </rule>
340 <rule>
341 <include state="strings-single"/>
342 </rule>
343 </state>
344 <state name="builtins">
345 <rule pattern="(?&lt;!\.)(staticmethod|classmethod|__import__|isinstance|basestring|issubclass|frozenset|raw_input|bytearray|enumerate|property|callable|reversed|execfile|hasattr|setattr|compile|complex|delattr|unicode|globals|getattr|unichr|reduce|xrange|buffer|intern|filter|locals|divmod|coerce|sorted|reload|object|slice|round|float|super|input|bytes|apply|tuple|range|iter|dict|long|type|hash|vars|next|file|exit|open|repr|eval|bool|list|bin|pow|zip|ord|oct|min|set|any|max|map|all|len|sum|int|dir|hex|chr|abs|cmp|str|id)\b">
346 <token type="NameBuiltin"/>
347 </rule>
348 <rule pattern="(?&lt;!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b">
349 <token type="NameBuiltinPseudo"/>
350 </rule>
351 <rule pattern="(?&lt;!\.)(PendingDeprecationWarning|UnicodeTranslateError|NotImplementedError|UnicodeDecodeError|DeprecationWarning|UnicodeEncodeError|FloatingPointError|ZeroDivisionError|UnboundLocalError|KeyboardInterrupt|EnvironmentError|IndentationError|OverflowWarning|ArithmeticError|ReferenceError|AttributeError|AssertionError|RuntimeWarning|UnicodeWarning|GeneratorExit|SyntaxWarning|StandardError|BaseException|OverflowError|FutureWarning|ImportWarning|StopIteration|UnicodeError|WindowsError|RuntimeError|ImportError|UserWarning|LookupError|SyntaxError|SystemError|MemoryError|SystemExit|ValueError|IndexError|NameError|Exception|TypeError|EOFError|KeyError|VMSError|TabError|IOError|Warning|OSError)\b">
352 <token type="NameException"/>
353 </rule>
354 </state>
355 </rules>
356</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml
new file mode 100644
index 0000000..193fe18
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qbasic.xml
@@ -0,0 +1,173 @@
1<lexer>
2 <config>
3 <name>QBasic</name>
4 <alias>qbasic</alias>
5 <alias>basic</alias>
6 <filename>*.BAS</filename>
7 <filename>*.bas</filename>
8 <mime_type>text/basic</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="\n+">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="\s+">
16 <token type="TextWhitespace"/>
17 </rule>
18 <rule pattern="^(\s*)(\d*)(\s*)(REM .*)$">
19 <bygroups>
20 <token type="TextWhitespace"/>
21 <token type="NameLabel"/>
22 <token type="TextWhitespace"/>
23 <token type="CommentSingle"/>
24 </bygroups>
25 </rule>
26 <rule pattern="^(\s*)(\d+)(\s*)">
27 <bygroups>
28 <token type="TextWhitespace"/>
29 <token type="NameLabel"/>
30 <token type="TextWhitespace"/>
31 </bygroups>
32 </rule>
33 <rule pattern="(?=[\s]*)(\w+)(?=[\s]*=)">
34 <token type="NameVariableGlobal"/>
35 </rule>
36 <rule pattern="(?=[^&#34;]*)\&#39;.*$">
37 <token type="CommentSingle"/>
38 </rule>
39 <rule pattern="&#34;[^\n&#34;]*&#34;">
40 <token type="LiteralStringDouble"/>
41 </rule>
42 <rule pattern="(END)(\s+)(FUNCTION|IF|SELECT|SUB)">
43 <bygroups>
44 <token type="KeywordReserved"/>
45 <token type="TextWhitespace"/>
46 <token type="KeywordReserved"/>
47 </bygroups>
48 </rule>
49 <rule pattern="(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)">
50 <bygroups>
51 <token type="KeywordDeclaration"/>
52 <token type="TextWhitespace"/>
53 <token type="NameVariable"/>
54 <token type="TextWhitespace"/>
55 <token type="Name"/>
56 </bygroups>
57 </rule>
58 <rule pattern="(DIM)(\s+)(SHARED)(\s+)([^\s(]+)">
59 <bygroups>
60 <token type="KeywordDeclaration"/>
61 <token type="TextWhitespace"/>
62 <token type="NameVariable"/>
63 <token type="TextWhitespace"/>
64 <token type="NameVariableGlobal"/>
65 </bygroups>
66 </rule>
67 <rule pattern="(DIM)(\s+)([^\s(]+)">
68 <bygroups>
69 <token type="KeywordDeclaration"/>
70 <token type="TextWhitespace"/>
71 <token type="NameVariableGlobal"/>
72 </bygroups>
73 </rule>
74 <rule pattern="^(\s*)([a-zA-Z_]+)(\s*)(\=)">
75 <bygroups>
76 <token type="TextWhitespace"/>
77 <token type="NameVariableGlobal"/>
78 <token type="TextWhitespace"/>
79 <token type="Operator"/>
80 </bygroups>
81 </rule>
82 <rule pattern="(GOTO|GOSUB)(\s+)(\w+\:?)">
83 <bygroups>
84 <token type="KeywordReserved"/>
85 <token type="TextWhitespace"/>
86 <token type="NameLabel"/>
87 </bygroups>
88 </rule>
89 <rule pattern="(SUB)(\s+)(\w+\:?)">
90 <bygroups>
91 <token type="KeywordReserved"/>
92 <token type="TextWhitespace"/>
93 <token type="NameLabel"/>
94 </bygroups>
95 </rule>
96 <rule>
97 <include state="declarations"/>
98 </rule>
99 <rule>
100 <include state="functions"/>
101 </rule>
102 <rule>
103 <include state="metacommands"/>
104 </rule>
105 <rule>
106 <include state="operators"/>
107 </rule>
108 <rule>
109 <include state="statements"/>
110 </rule>
111 <rule>
112 <include state="keywords"/>
113 </rule>
114 <rule pattern="[a-zA-Z_]\w*[$@#&amp;!]">
115 <token type="NameVariableGlobal"/>
116 </rule>
117 <rule pattern="[a-zA-Z_]\w*\:">
118 <token type="NameLabel"/>
119 </rule>
120 <rule pattern="\-?\d*\.\d+[@|#]?">
121 <token type="LiteralNumberFloat"/>
122 </rule>
123 <rule pattern="\-?\d+[@|#]">
124 <token type="LiteralNumberFloat"/>
125 </rule>
126 <rule pattern="\-?\d+#?">
127 <token type="LiteralNumberIntegerLong"/>
128 </rule>
129 <rule pattern="\-?\d+#?">
130 <token type="LiteralNumberInteger"/>
131 </rule>
132 <rule pattern="!=|==|:=|\.=|&lt;&lt;|&gt;&gt;|[-~+/\\*%=&lt;&gt;&amp;^|?:!.]">
133 <token type="Operator"/>
134 </rule>
135 <rule pattern="[\[\]{}(),;]">
136 <token type="Punctuation"/>
137 </rule>
138 <rule pattern="[\w]+">
139 <token type="NameVariableGlobal"/>
140 </rule>
141 </state>
142 <state name="declarations">
143 <rule pattern="\b(DATA|LET)(?=\(|\b)">
144 <token type="KeywordDeclaration"/>
145 </rule>
146 </state>
147 <state name="functions">
148 <rule pattern="\b(ABS|ASC|ATN|CDBL|CHR\$|CINT|CLNG|COMMAND\$|COS|CSNG|CSRLIN|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|DATE\$|ENVIRON\$|EOF|ERDEV|ERDEV\$|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEX\$|INKEY\$|INP|INPUT\$|INSTR|INT|IOCTL\$|LBOUND|LCASE\$|LEFT\$|LEN|LOC|LOF|LOG|LPOS|LTRIM\$|MID\$|MKD\$|MKDMBF\$|MKI\$|MKL\$|MKS\$|MKSMBF\$|OCT\$|PEEK|PEN|PLAY|PMAP|POINT|POS|RIGHT\$|RND|RTRIM\$|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPACE\$|SPC|SQR|STICK|STR\$|STRIG|STRING\$|TAB|TAN|TIME\$|TIMER|UBOUND|UCASE\$|VAL|VARPTR|VARPTR\$|VARSEG)(?=\(|\b)">
149 <token type="KeywordReserved"/>
150 </rule>
151 </state>
152 <state name="metacommands">
153 <rule pattern="\b(\$DYNAMIC|\$INCLUDE|\$STATIC)(?=\(|\b)">
154 <token type="KeywordConstant"/>
155 </rule>
156 </state>
157 <state name="operators">
158 <rule pattern="\b(AND|EQV|IMP|NOT|OR|XOR)(?=\(|\b)">
159 <token type="OperatorWord"/>
160 </rule>
161 </state>
162 <state name="statements">
163 <rule pattern="\b(BEEP|BLOAD|BSAVE|CALL|CALL\ ABSOLUTE|CALL\ INTERRUPT|CALLS|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DATE\$|DECLARE|DEF\ FN|DEF\ SEG|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DEF|DIM|DO|LOOP|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|NEXT|FUNCTION|GET|GOSUB|GOTO|IF|THEN|INPUT|INPUT\ \#|IOCTL|KEY|KEY|KILL|LET|LINE|LINE\ INPUT|LINE\ INPUT\ \#|LOCATE|LOCK|UNLOCK|LPRINT|LSET|MID\$|MKDIR|NAME|ON\ COM|ON\ ERROR|ON\ KEY|ON\ PEN|ON\ PLAY|ON\ STRIG|ON\ TIMER|ON\ UEVENT|ON|OPEN|OPEN\ COM|OPTION\ BASE|OUT|PAINT|PALETTE|PCOPY|PEN|PLAY|POKE|PRESET|PRINT|PRINT\ \#|PRINT\ USING|PSET|PUT|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT\ CASE|SHARED|SHELL|SLEEP|SOUND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIME\$|TIMER|TROFF|TRON|TYPE|UEVENT|UNLOCK|VIEW|WAIT|WHILE|WEND|WIDTH|WINDOW|WRITE)\b">
164 <token type="KeywordReserved"/>
165 </rule>
166 </state>
167 <state name="keywords">
168 <rule pattern="\b(ACCESS|ALIAS|ANY|APPEND|AS|BASE|BINARY|BYVAL|CASE|CDECL|DOUBLE|ELSE|ELSEIF|ENDIF|INTEGER|IS|LIST|LOCAL|LONG|LOOP|MOD|NEXT|OFF|ON|OUTPUT|RANDOM|SIGNAL|SINGLE|STEP|STRING|THEN|TO|UNTIL|USING|WEND)\b">
169 <token type="Keyword"/>
170 </rule>
171 </state>
172 </rules>
173</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml
new file mode 100644
index 0000000..43eb3eb
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/qml.xml
@@ -0,0 +1,113 @@
1<lexer>
2 <config>
3 <name>QML</name>
4 <alias>qml</alias>
5 <alias>qbs</alias>
6 <filename>*.qml</filename>
7 <filename>*.qbs</filename>
8 <mime_type>application/x-qml</mime_type>
9 <mime_type>application/x-qt.qbs+qml</mime_type>
10 <dot_all>true</dot_all>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern="^(?=\s|/|&lt;!--)">
15 <token type="Text"/>
16 <push state="slashstartsregex"/>
17 </rule>
18 <rule>
19 <include state="commentsandwhitespace"/>
20 </rule>
21 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
22 <token type="Operator"/>
23 <push state="slashstartsregex"/>
24 </rule>
25 <rule pattern="[{(\[;,]">
26 <token type="Punctuation"/>
27 <push state="slashstartsregex"/>
28 </rule>
29 <rule pattern="[})\].]">
30 <token type="Punctuation"/>
31 </rule>
32 <rule pattern="\bid\s*:\s*[A-Za-z][\w.]*">
33 <token type="KeywordDeclaration"/>
34 <push state="slashstartsregex"/>
35 </rule>
36 <rule pattern="\b[A-Za-z][\w.]*\s*:">
37 <token type="Keyword"/>
38 <push state="slashstartsregex"/>
39 </rule>
40 <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\b">
41 <token type="Keyword"/>
42 <push state="slashstartsregex"/>
43 </rule>
44 <rule pattern="(var|let|with|function)\b">
45 <token type="KeywordDeclaration"/>
46 <push state="slashstartsregex"/>
47 </rule>
48 <rule pattern="(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">
49 <token type="KeywordReserved"/>
50 </rule>
51 <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
52 <token type="KeywordConstant"/>
53 </rule>
54 <rule pattern="(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">
55 <token type="NameBuiltin"/>
56 </rule>
57 <rule pattern="[$a-zA-Z_]\w*">
58 <token type="NameOther"/>
59 </rule>
60 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
61 <token type="LiteralNumberFloat"/>
62 </rule>
63 <rule pattern="0x[0-9a-fA-F]+">
64 <token type="LiteralNumberHex"/>
65 </rule>
66 <rule pattern="[0-9]+">
67 <token type="LiteralNumberInteger"/>
68 </rule>
69 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
70 <token type="LiteralStringDouble"/>
71 </rule>
72 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
73 <token type="LiteralStringSingle"/>
74 </rule>
75 </state>
76 <state name="commentsandwhitespace">
77 <rule pattern="\s+">
78 <token type="Text"/>
79 </rule>
80 <rule pattern="&lt;!--">
81 <token type="Comment"/>
82 </rule>
83 <rule pattern="//.*?\n">
84 <token type="CommentSingle"/>
85 </rule>
86 <rule pattern="/\*.*?\*/">
87 <token type="CommentMultiline"/>
88 </rule>
89 </state>
90 <state name="slashstartsregex">
91 <rule>
92 <include state="commentsandwhitespace"/>
93 </rule>
94 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
95 <token type="LiteralStringRegex"/>
96 <pop depth="1"/>
97 </rule>
98 <rule pattern="(?=/)">
99 <token type="Text"/>
100 <push state="#pop" state="badregex"/>
101 </rule>
102 <rule>
103 <pop depth="1"/>
104 </rule>
105 </state>
106 <state name="badregex">
107 <rule pattern="\n">
108 <token type="Text"/>
109 <pop depth="1"/>
110 </rule>
111 </state>
112 </rules>
113</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml
new file mode 100644
index 0000000..6dbfcba
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/r.xml
@@ -0,0 +1,127 @@
1<lexer>
2 <config>
3 <name>R</name>
4 <alias>splus</alias>
5 <alias>s</alias>
6 <alias>r</alias>
7 <filename>*.S</filename>
8 <filename>*.R</filename>
9 <filename>*.r</filename>
10 <filename>.Rhistory</filename>
11 <filename>.Rprofile</filename>
12 <filename>.Renviron</filename>
13 <mime_type>text/S-plus</mime_type>
14 <mime_type>text/S</mime_type>
15 <mime_type>text/x-r-source</mime_type>
16 <mime_type>text/x-r</mime_type>
17 <mime_type>text/x-R</mime_type>
18 <mime_type>text/x-r-history</mime_type>
19 <mime_type>text/x-r-profile</mime_type>
20 </config>
21 <rules>
22 <state name="numbers">
23 <rule pattern="0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?">
24 <token type="LiteralNumberHex"/>
25 </rule>
26 <rule pattern="[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?">
27 <token type="LiteralNumber"/>
28 </rule>
29 </state>
30 <state name="operators">
31 <rule pattern="&lt;&lt;?-|-&gt;&gt;?|-|==|&lt;=|&gt;=|&lt;|&gt;|&amp;&amp;?|!=|\|\|?|\?">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}">
35 <token type="Operator"/>
36 </rule>
37 </state>
38 <state name="root">
39 <rule pattern="((?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*))\s*(?=\()">
40 <token type="NameFunction"/>
41 </rule>
42 <rule>
43 <include state="statements"/>
44 </rule>
45 <rule pattern="\{|\}">
46 <token type="Punctuation"/>
47 </rule>
48 <rule pattern=".">
49 <token type="Text"/>
50 </rule>
51 </state>
52 <state name="valid_name">
53 <rule pattern="(?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*)">
54 <token type="Name"/>
55 </rule>
56 </state>
57 <state name="keywords">
58 <rule pattern="(if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])">
59 <token type="KeywordReserved"/>
60 </rule>
61 </state>
62 <state name="builtin_symbols">
63 <rule pattern="(NULL|NA(_(integer|real|complex|character)_)?|letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))(?![\w.])">
64 <token type="KeywordConstant"/>
65 </rule>
66 <rule pattern="(T|F)\b">
67 <token type="NameBuiltinPseudo"/>
68 </rule>
69 </state>
70 <state name="string_squote">
71 <rule pattern="([^\&#39;\\]|\\.)*\&#39;">
72 <token type="LiteralString"/>
73 <pop depth="1"/>
74 </rule>
75 </state>
76 <state name="comments">
77 <rule pattern="#.*$">
78 <token type="CommentSingle"/>
79 </rule>
80 </state>
81 <state name="punctuation">
82 <rule pattern="\[{1,2}|\]{1,2}|\(|\)|;|,">
83 <token type="Punctuation"/>
84 </rule>
85 </state>
86 <state name="statements">
87 <rule>
88 <include state="comments"/>
89 </rule>
90 <rule pattern="\s+">
91 <token type="Text"/>
92 </rule>
93 <rule pattern="\&#39;">
94 <token type="LiteralString"/>
95 <push state="string_squote"/>
96 </rule>
97 <rule pattern="\&#34;">
98 <token type="LiteralString"/>
99 <push state="string_dquote"/>
100 </rule>
101 <rule>
102 <include state="builtin_symbols"/>
103 </rule>
104 <rule>
105 <include state="valid_name"/>
106 </rule>
107 <rule>
108 <include state="numbers"/>
109 </rule>
110 <rule>
111 <include state="keywords"/>
112 </rule>
113 <rule>
114 <include state="punctuation"/>
115 </rule>
116 <rule>
117 <include state="operators"/>
118 </rule>
119 </state>
120 <state name="string_dquote">
121 <rule pattern="([^&#34;\\]|\\.)*&#34;">
122 <token type="LiteralString"/>
123 <pop depth="1"/>
124 </rule>
125 </state>
126 </rules>
127</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml
new file mode 100644
index 0000000..6cdd303
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/racket.xml
@@ -0,0 +1,260 @@
1<lexer>
2 <config>
3 <name>Racket</name>
4 <alias>racket</alias>
5 <alias>rkt</alias>
6 <filename>*.rkt</filename>
7 <filename>*.rktd</filename>
8 <filename>*.rktl</filename>
9 <mime_type>text/x-racket</mime_type>
10 <mime_type>application/x-racket</mime_type>
11 </config>
12 <rules>
13 <state name="datum*">
14 <rule pattern="`|,@?">
15 <token type="Operator"/>
16 </rule>
17 <rule pattern="(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
18 <token type="LiteralStringSymbol"/>
19 <pop depth="1"/>
20 </rule>
21 <rule pattern="[|\\]">
22 <token type="Error"/>
23 </rule>
24 <rule>
25 <pop depth="1"/>
26 </rule>
27 </state>
28 <state name="quoted-list">
29 <rule>
30 <include state="list"/>
31 </rule>
32 <rule pattern="(?!\Z)">
33 <token type="Text"/>
34 <push state="quoted-datum"/>
35 </rule>
36 </state>
37 <state name="quasiquoted-list">
38 <rule>
39 <include state="list"/>
40 </rule>
41 <rule pattern="(?!\Z)">
42 <token type="Text"/>
43 <push state="quasiquoted-datum"/>
44 </rule>
45 </state>
46 <state name="quoted-datum">
47 <rule>
48 <include state="datum"/>
49 </rule>
50 <rule pattern="[([{]">
51 <token type="Punctuation"/>
52 <push state="#pop" state="quoted-list"/>
53 </rule>
54 <rule>
55 <include state="datum*"/>
56 </rule>
57 </state>
58 <state name="block-comment">
59 <rule pattern="#\|">
60 <token type="CommentMultiline"/>
61 <push/>
62 </rule>
63 <rule pattern="\|#">
64 <token type="CommentMultiline"/>
65 <pop depth="1"/>
66 </rule>
67 <rule pattern="[^#|]+|.">
68 <token type="CommentMultiline"/>
69 </rule>
70 </state>
71 <state name="datum">
72 <rule pattern="(?s)#;|#![ /]([^\\\n]|\\.)*">
73 <token type="Comment"/>
74 </rule>
75 <rule pattern=";[^\n\r…

]*">
76 <token type="CommentSingle"/>
77 </rule>
78 <rule pattern="#\|">
79 <token type="CommentMultiline"/>
80 <push state="block-comment"/>
81 </rule>
82 <rule pattern="\s+">
83 <token type="Text"/>
84 </rule>
85 <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?\d+(?=[()[\]{}&#34;,\&#39;`;\s])">
86 <token type="LiteralNumberInteger"/>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?(\d+(\.\d*)?|\.\d+)([deflst][-+]?\d+)?(?=[()[\]{}&#34;,\&#39;`;\s])">
90 <token type="LiteralNumberFloat"/>
91 <pop depth="1"/>
92 </rule>
93 <rule pattern="(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?((?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)([-+](?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)?i)?|[-+](?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)(?:[defls][-+]?\d+)?)?i)(?=[()[\]{}&#34;,\&#39;`;\s])">
94 <token type="LiteralNumber"/>
95 <pop depth="1"/>
96 </rule>
97 <rule pattern="(?i)(#d)?((?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f]))([-+](?:(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|(?:(?:inf|nan)\.[0f]))?i)?|[-+](?:(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|(?:(?:inf|nan)\.[0f]))?i|(?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f]))@(?:[-+]?(?:(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))(?:[defls][-+]?\d+)?)|[-+](?:(?:inf|nan)\.[0f])))(?=[()[\]{}&#34;,\&#39;`;\s])">
98 <token type="LiteralNumberFloat"/>
99 <pop depth="1"/>
100 </rule>
101 <rule pattern="(?i)(([-+]?(?:(?:\d+(?:/\d+|\.\d*)?|\.\d+)|(?:\d+#+(?:\.#*|/\d+#*)?|\.\d+#+|\d+(?:\.\d*#+|/\d+#+)))t[-+]?\d+)|[-+](inf|nan)\.t)(?=[()[\]{}&#34;,\&#39;`;\s])">
102 <token type="LiteralNumberFloat"/>
103 <pop depth="1"/>
104 </rule>
105 <rule pattern="(?i)(#[ei])?#b(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
106 <token type="LiteralNumberBin"/>
107 <pop depth="1"/>
108 </rule>
109 <rule pattern="(?i)(#[ei])?#o(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
110 <token type="LiteralNumberOct"/>
111 <pop depth="1"/>
112 </rule>
113 <rule pattern="(?i)(#[ei])?#x(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
114 <token type="LiteralNumberHex"/>
115 <pop depth="1"/>
116 </rule>
117 <rule pattern="(?i)(#d)?#i(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
118 <token type="LiteralNumberFloat"/>
119 <pop depth="1"/>
120 </rule>
121 <rule pattern="#?&#34;">
122 <token type="LiteralStringDouble"/>
123 <push state="#pop" state="string"/>
124 </rule>
125 <rule pattern="#&lt;&lt;(.+)\n(^(?!\1$).*$\n)*^\1$">
126 <token type="LiteralStringHeredoc"/>
127 <pop depth="1"/>
128 </rule>
129 <rule pattern="#\\(u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8})">
130 <token type="LiteralStringChar"/>
131 <pop depth="1"/>
132 </rule>
133 <rule pattern="(?is)#\\([0-7]{3}|[a-z]+|.)">
134 <token type="LiteralStringChar"/>
135 <pop depth="1"/>
136 </rule>
137 <rule pattern="(?s)#[pr]x#?&#34;(\\?.)*?&#34;">
138 <token type="LiteralStringRegex"/>
139 <pop depth="1"/>
140 </rule>
141 <rule pattern="#(true|false|[tTfF])">
142 <token type="NameConstant"/>
143 <pop depth="1"/>
144 </rule>
145 <rule pattern="#:(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
146 <token type="KeywordDeclaration"/>
147 <pop depth="1"/>
148 </rule>
149 <rule pattern="(#lang |#!)(\S+)">
150 <bygroups>
151 <token type="KeywordNamespace"/>
152 <token type="NameNamespace"/>
153 </bygroups>
154 </rule>
155 <rule pattern="#reader">
156 <token type="KeywordNamespace"/>
157 <push state="quoted-datum"/>
158 </rule>
159 <rule pattern="(?i)\.(?=[()[\]{}&#34;,\&#39;`;\s])|#c[is]|#[&#39;`]|#,@?">
160 <token type="Operator"/>
161 </rule>
162 <rule pattern="&#39;|#[s&amp;]|#hash(eqv?)?|#\d*(?=[([{])">
163 <token type="Operator"/>
164 <push state="#pop" state="quoted-datum"/>
165 </rule>
166 </state>
167 <state name="string">
168 <rule pattern="&#34;">
169 <token type="LiteralStringDouble"/>
170 <pop depth="1"/>
171 </rule>
172 <rule pattern="(?s)\\([0-7]{1,3}|x[\da-fA-F]{1,2}|u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8}|.)">
173 <token type="LiteralStringEscape"/>
174 </rule>
175 <rule pattern="[^\\&#34;]+">
176 <token type="LiteralStringDouble"/>
177 </rule>
178 </state>
179 <state name="root">
180 <rule pattern="[)\]}]">
181 <token type="Error"/>
182 </rule>
183 <rule pattern="(?!\Z)">
184 <token type="Text"/>
185 <push state="unquoted-datum"/>
186 </rule>
187 </state>
188 <state name="list">
189 <rule pattern="[)\]}]">
190 <token type="Punctuation"/>
191 <pop depth="1"/>
192 </rule>
193 </state>
194 <state name="unquoted-datum">
195 <rule>
196 <include state="datum"/>
197 </rule>
198 <rule pattern="quote(?=[()[\]{}&#34;,\&#39;`;\s])">
199 <token type="Keyword"/>
200 <push state="#pop" state="quoted-datum"/>
201 </rule>
202 <rule pattern="`">
203 <token type="Operator"/>
204 <push state="#pop" state="quasiquoted-datum"/>
205 </rule>
206 <rule pattern="quasiquote(?=[()[\]{}&#34;,\&#39;`;\s])">
207 <token type="Keyword"/>
208 <push state="#pop" state="quasiquoted-datum"/>
209 </rule>
210 <rule pattern="[([{]">
211 <token type="Punctuation"/>
212 <push state="#pop" state="unquoted-list"/>
213 </rule>
214 <rule pattern="(define/subexpression-pos-prop/name|define-module-boundary-contract|define-values/invoke-unit/infer|with-contract-continuation-mark|define/subexpression-pos-prop|include-at/relative-to/reader|define-unit/new-import-export|define-compound-unit/infer|define-serializable-class\*|provide-signature-elements|define-serializable-class|define-values/invoke-unit|define-values-for-export|define-custom-hash-types|define-local-member-name|define-unit-from-context|define-values-for-syntax|define-custom-set-types|define-namespace-anchor|#%printing-module-begin|letrec-syntaxes\+values|include-at/relative-to|define-contract-struct|define-struct/contract|unconstrained-domain-&gt;|with-continuation-mark|unit/new-import-export|define-sequence-syntax|define-match-expander|define-signature-form|define/override-final|define-struct/derived|define/augment-final|define-compound-unit|#%plain-module-begin|class-field-accessor|#%variable-reference|define-unit/contract|class-field-mutator|match-letrec-values|define/public-final|for\*/mutable-seteqv|define-unit-binding|invariant-assertion|flat-murec-contract|match-define-values|compound-unit/infer|for/mutable-seteqv|parameterize-break|send/keyword-apply|struct-field-index|quote-syntax/prune|recursive-contract|define-syntax-rule|for\*/mutable-seteq|define-member-name|match-let\*-values|#%top-interaction|for/mutable-seteq|define/final-prop|unit-from-context|unsyntax-splicing|#%stratified-body|super-instantiate|invoke-unit/infer|flat-rec-contract|for\*/fold/derived|super-make-object|define-for-syntax|define-signature|for/fold/derived|for\*/weak-seteqv|gen:custom-write|unquote-splicing|begin-for-syntax|provide/contract|for\*/mutable-set|match-let-values|for\*/weak-seteq|object-contract|define/override|all-defined-out|define/overment|member-name-key|quasisyntax/loc|define/contract|contract-struct|define-syntaxes|override-final\*|for/mutable-set|for/weak-seteqv|syntax-id-rules|letrec-syntaxes|define/private|gen:equal\+hash|for/weak-seteq|match\*/derived|recontract-out|#%module-begin|define/augment|augment-final\*|define/augride|with-handlers\*|match-lambda\*\*|include/reader|define/pubment|override-final|#%plain-lambda|parametric-&gt;/c|define-struct|match/derived|compound-unit|class/derived|define-unit/s|inherit/super|define-logger|augment-final|for\*/weak-set|with-handlers|define/public|match-lambda\*|define-syntax|parameterize\*|place/context|local-require|letrec-values|define-values|public-final\*|letrec-syntax|inherit-field|with-contract|inherit/inner|define/match|failure-cont|send-generic|#%expression|parameterize|syntax-case\*|for/weak-set|match-define|syntax-rules|public-final|delay/thread|delay/strict|match-lambda|quote-syntax|only-meta-in|let-syntaxes|all-from-out|match/values|for\*/hasheqv|command-line|for\*/product|match-letrec|rename-inner|rename-super|for-template|contract-out|define-opt/c|field-bound\?|prompt-tag/c|for\*/vector|invoke-unit|values/drop|instantiate|for\*/stream|for\*/seteqv|init-depend|relative-in|let\*-values|with-method|case-lambda|protect-out|for\*/hasheq|with-syntax|set!-values|syntax-case|stream-cons|#%plain-app|quasisyntax|struct-copy|log-warning|combine-out|define-unit|for/hasheqv|for/product|interface\*|for/vector|for/stream|for/seteqv|syntax/loc|prefix-out|contracted|set-field!|for\*/async|gen:stream|for\*/first|init-field|let-values|send/apply|for\*/lists|let-syntax|match-let\*|delay/name|struct/ctc|for/hasheq|rename-out|delay/idle|combine-in|quasiquote|delay/sync|struct-out|except-out|for-syntax|for\*/seteq|overment\*|init-rest|interface|match-let|for/async|for-label|for/first|override\*|for\*/fold|rename-in|struct/dc|except-in|for/lists|#%require|#%provide|for\*/list|for\*/hash|get-field|#%declare|prefix-in|log-debug|for\*/last|for/seteq|log-fatal|super-new|log-error|override|augment\*|overment|log-info|abstract|for\*/sum|pubment\*|for-meta|struct/c|for\*/and|for/fold|for/hash|for/last|for/list|unsyntax|private\*|gen:dict|contract|augride\*|object/c|for\*/set|class/c|pubment|case-&gt;m|module\*|module\+|cons/dc|public\*|augride|struct\*|extends|augment|only-in|false/c|provide|for\*/or|inspect|for/and|for/sum|require|inherit|include|implies|hash/dc|generic|#%datum|gen:set|private|for/set|unquote|stream\*|import|planet|place\*|:do-in|unless|unit/s|unit/c|absent|thunk\*|begin0|public|prefix|case-&gt;|module|syntax|match\*|define|submod|except|export|let/ec|letrec|struct|let/cc|stream|rename|shared|for/or|lambda|class\*|place|thunk|send\*|send\+|inner|#%top|this%|opt/c|begin|mixin|class|match|super|field|false|local|quote|#%app|delay|time|else|link|when|file|let\*|cond|-&gt;dm|-&gt;\*m|nand|case|only|for\*|set!|open|this|lazy|send|unit|init|-&gt;m|nor|tag|any|-&gt;\*|for|-&gt;d|let|new|lib|\.\.\.|and|-&gt;i|do|==|λ|or|-&gt;|if|=&gt;|_)(?=[()[\]{}&#34;,\&#39;`;\s])">
215 <token type="Keyword"/>
216 <pop depth="1"/>
217 </rule>
218 <rule pattern="(variable-reference-&gt;module-declaration-inspector|wrapped-extra-arg-arrow-extra-neg-party-argument|contract-random-generate-get-current-environment|internal-definition-context-binding-identifiers|call-with-default-reading-parameterization|struct:exn:fail:contract:non-fixnum-result|syntax-local-transforming-module-provides\?|identifier-remove-from-definition-context|impersonator-property-accessor-procedure\?|struct:exn:fail:filesystem:missing-module|regexp-match-peek-positions-immediate/end|syntax-local-lift-module-end-declaration|syntax-local-module-required-identifiers|variable-reference-&gt;resolved-module-path|make-exn:fail:contract:non-fixnum-result|struct-type-property-accessor-procedure\?|syntax-local-module-defined-identifiers|make-tentative-pretty-print-output-port|module-compiled-cross-phase-persistent\?|struct:exn:fail:contract:divide-by-zero|make-exn:fail:filesystem:missing-module|arrow-contract-info-chaperone-procedure|exn:fail:filesystem:missing-module-path|syntax-transforming-module-expression\?|local-transformer-expand/capture-lifts|custodian-memory-accounting-available\?|call-with-immediate-continuation-mark|variable-reference-&gt;module-path-index|struct:exn:fail:contract:continuation|internal-definition-context-introduce|struct:exn:fail:syntax:missing-module|regexp-match-peek-positions-immediate|variable-reference-&gt;module-base-phase|arrow-contract-info-check-first-order|make-exn:fail:contract:divide-by-zero|exn:fail:contract:non-fixnum-result\?|tentative-pretty-print-port-transfer|prop:opt-chaperone-contract-get-test|syntax-local-make-definition-context|compile-context-preservation-enabled|current-preserved-thread-cell-values|exn:fail:filesystem:missing-module\?|contract-struct-late-neg-projection|make-exn:fail:contract:continuation|syntax-local-lift-values-expression|pretty-print-abbreviate-read-macros|current-evt-pseudo-random-generator|checked-procedure-check-and-extract|contract-custom-write-property-proc|exn:fail:syntax:missing-module-path|exn:fail:contract:non-fixnum-result|namespace-attach-module-declaration|variable-reference-&gt;empty-namespace|make-exn:fail:syntax:missing-module|arrow-contract-info-accepts-arglist|syntax-local-make-delta-introducer|struct:exn:fail:filesystem:version|impersonator-prop:application-mark|pretty-print-\.-symbol-without-bars|prop:orc-contract-get-subcontracts|syntax-local-identifier-as-binding|exn:fail:filesystem:missing-module|current-get-interaction-input-port|tentative-pretty-print-port-cancel|current-subprocess-custodian-mode|build-chaperone-contract-property|impersonate-continuation-mark-key|identifier-prune-to-source-module|variable-reference-&gt;module-source|namespace-anchor-&gt;empty-namespace|struct:exn:fail:contract:variable|exn:fail:contract:divide-by-zero\?|wrapped-extra-arg-arrow-real-func|make-handle-get-preference-locked|string-environment-variable-name\?|current-thread-initial-stack-size|struct:exn:fail:filesystem:exists|call-with-composable-continuation|exn:fail:contract:divide-by-zero|namespace-require/expansion-time|call-with-semaphore/enable-break|pretty-print-current-style-table|compile-enforce-module-constants|identifier-prune-lexical-context|vector-&gt;pseudo-random-generator!|make-exn:fail:filesystem:version|current-library-collection-paths|struct:exn:fail:filesystem:errno|current-write-relative-directory|current-library-collection-links|current-force-delete-permissions|internal-definition-context-seal|bytes-environment-variable-name\?|call-with-break-parameterization|file-or-directory-modify-seconds|exn:fail:filesystem:errno-errno|current-load-relative-directory|syntax-transforming-with-lifts\?|chaperone-continuation-mark-key|default-continuation-prompt-tag|pseudo-random-generator-vector\?|make-exn:fail:filesystem:exists|pseudo-random-generator-&gt;vector|pretty-print-extend-style-table|exn:fail:contract:continuation\?|current-pseudo-random-generator|exn:fail:syntax:missing-module\?|vector-&gt;pseudo-random-generator|contract-random-generate/choose|regexp-match-peek-positions/end|make-exn:fail:contract:variable|call-with-current-continuation|custom-print-quotable-accessor|identifier-transformer-binding|current-break-parameterization|make-exn:fail:filesystem:errno|struct:exn:fail:contract:arity|exn:fail:contract:blame-object|exn:fail:contract:continuation|contract-random-generate-fail\?|write-bytes-avail/enable-break|syntax-local-expand-expression|continuation-prompt-available\?|struct:exn:fail:contract:blame|procedure-reduce-keyword-arity|struct:wrapped-extra-arg-arrow|continuation-mark-set-&gt;context|struct:exn:fail:syntax:unbound|use-user-specific-search-paths|contract-continuation-mark-key|get/build-val-first-projection|call-with-continuation-barrier|contract-random-generate-stash|read-bytes-avail!/enable-break|contract-struct-list-contract\?|exn:fail:syntax:missing-module|procedure-closure-contents-eq\?|peek-bytes-avail!/enable-break|current-command-line-arguments|prop:recursive-contract-unroll|file-or-directory-permissions|compiled-expression-recompile|call-with-continuation-prompt|vector-set-performance-stats!|get/build-late-neg-projection|object-method-arity-includes\?|find-library-collection-links|current-module-declare-source|exn:fail:contract:variable-id|pretty-print-exact-as-decimal|find-library-collection-paths|struct:exn:fail:network:errno|current-environment-variables|namespace-set-variable-value!|struct:exn:fail:read:non-char|module-compiled-language-info|contract-val-first-projection|pretty-print-show-inexactness|struct-constructor-procedure\?|struct:exn:fail:out-of-memory|contract-random-generate-fail|call-with-escape-continuation|free-transformer-identifier=\?|variable-reference-&gt;namespace|current-module-name-resolver|filesystem-change-evt-cancel|current-module-path-for-load|call-with-atomic-output-file|udp-multicast-set-interface!|struct-type-make-constructor|pretty-print-post-print-hook|make-exn:fail:syntax:unbound|current-process-milliseconds|port-provides-progress-evts\?|make-continuation-prompt-tag|compile-allow-set!-undefined|exn:fail:network:errno-errno|make-exn:fail:contract:blame|exn:fail:filesystem:version\?|make-exn:fail:contract:arity|read-square-bracket-as-paren|read-square-bracket-with-tag|make-pseudo-random-generator|continuation-mark-set-&gt;list\*|make-syntax-delta-introducer|current-inexact-milliseconds|prop:arrow-contract-get-info|namespace-undefine-variable!|namespace-symbol-&gt;identifier|contract-first-order-passes\?|contract-late-neg-projection|syntax-local-lift-expression|syntax-local-value/immediate|impersonator-prop:contracted|variable-reference-constant\?|build-flat-contract-property|chaperone-contract-property\?|regexp-match-peek-positions\*|internal-definition-context\?|prop:opt-chaperone-contract\?|make-input-port/read-to-peek|plumber-flush-handle-remove!|current-compiled-file-roots|prop:opt-chaperone-contract|prop:liberal-define-context|syntax-local-module-exports|compiled-module-expression\?|exn:fail:filesystem:version|exn:fail:filesystem:exists\?|continuation-mark-set-&gt;list|make-file-or-directory-link|continuation-mark-set-first|error-print-source-location|semaphore-wait/enable-break|exn:fail:contract:variable\?|exn:missing-module-accessor|namespace-module-identifier|environment-variables-names|current-module-declare-name|identifier-template-binding|system-path-convention-type|make-exn:fail:read:non-char|regexp-match-peek-positions|struct:exn:fail:unsupported|pretty-print-remap-stylable|pretty-print-pre-print-hook|make-exn:fail:network:errno|namespace-anchor-&gt;namespace|call-with-exception-handler|make-exn:fail:out-of-memory|error-value-&gt;string-handler|path-list-string-&gt;path-list|struct-predicate-procedure\?|udp-multicast-set-loopback!|regexp-match-peek-immediate|syntax-property-symbol-keys|call-with-file-lock/timeout|module-path-index-submodule|udp-multicast-leave-group!|struct:exn:fail:filesystem|current-directory-for-user|floating-point-bytes-&gt;real|namespace-unprotect-module|free-template-identifier=\?|struct-accessor-procedure\?|namespace-syntax-introduce|namespace-require/constant|syntax-property-preserved\?|exact-nonnegative-integer\?|call-with-parameterization|real-&gt;floating-point-bytes|error-print-context-length|raise-not-cons-blame-error|current-continuation-marks|preferences-lock-file-mode|check-duplicate-identifier|make-environment-variables|environment-variables-set!|make-continuation-mark-key|file-or-directory-identity|struct-type-make-predicate|build-path/convention-type|print-reader-abbreviations|make-immutable-custom-hash|module-compiled-submodules|procedure-arity-includes/c|struct:exn:break:terminate|regexp-match-positions/end|coerce-chaperone-contracts|environment-variables-copy|exn:fail:contract:variable|make-struct-field-accessor|local-expand/capture-lifts|dynamic-require-for-syntax|syntax-local-bind-syntaxes|set!-transformer-procedure|exn:fail:filesystem:errno\?|exn:fail:filesystem:exists|prop:custom-print-quotable|make-known-char-range-list|abort-current-continuation|uncaught-exception-handler|custom-write-property-proc|make-impersonator-property|struct:arrow-contract-info|variable-reference-&gt;phase|set-some-basic-contracts!|current-load/use-compiled|use-collection-link-paths|make-resolved-module-path|string-&gt;unreadable-symbol|syntax-local-lift-require|set-symmetric-difference!|syntax-local-lift-provide|udp-multicast-join-group!|read-curly-brace-as-paren|read-curly-brace-with-tag|exn:fail:filesystem:errno|global-port-print-handler|rename-transformer-target|blame-add-nth-arg-context|make-exn:fail:unsupported|identifier-binding-symbol|equal-secondary-hash-code|make-struct-field-mutator|blame-add-unknown-context|pretty-print-style-table\?|make-struct-type-property|member-name-key-hash-code|coerce-chaperone-contract|resolved-module-path-name|syntax-local-lift-context|environment-variables-ref|expand-syntax-to-top-form|module-path-index-resolve|make-base-empty-namespace|namespace-module-registry|string-&gt;uninterned-symbol|udp-receive!/enable-break|special-filter-input-port|syntax-local-get-shadower|struct-mutator-procedure\?|module-provide-protected\?|procedure-arity-includes\?|sync/timeout/enable-break|subprocess-group-enabled|custodian-require-memory|contract-struct-generate|pseudo-random-generator\?|syntax-shift-phase-level|vector-&gt;immutable-vector|contract-struct-exercise|exn:fail:contract:arity\?|procedure-extract-target|exn:fail:contract:blame\?|build-compound-type-name|make-exn:fail:filesystem|contract-random-generate|namespace-mapped-symbols|local-transformer-expand|in-immutable-hash-values|some-system-path-&gt;string|struct:exn:break:hang-up|skip-projection-wrapper\?|identifier-label-binding|print-mpair-curly-braces|executable-yield-handler|current-read-interaction|struct:exn:fail:contract|continuation-prompt-tag\?|exn:fail:syntax:unbound\?|make-hasheqv-placeholder|syntax-local-lift-module|current-parameterization|tcp-connect/enable-break|struct:exn:fail:read:eof|namespace-variable-value|string-&gt;immutable-string|wrapped-extra-arg-arrow\?|string-&gt;some-system-path|dict-can-functional-set\?|prop:recursive-contract\?|syntax-local-phase-level|rename-file-or-directory|set-symmetric-difference|udp-send-to/enable-break|port-count-lines-enabled|make-exn:break:terminate|exn:fail:syntax:unbound|struct:exn:fail:network|prefab-key-&gt;struct-type|namespace-attach-module|read-decimal-as-inexact|udp-multicast-loopback\?|pretty-print-print-hook|current-gc-milliseconds|blame-add-missing-party|pretty-print-print-line|exact-positive-integer\?|blame-add-range-context|free-label-identifier=\?|set-port-next-location!|print-boolean-long-form|string-normalize-spaces|flat-contract-property\?|print-pair-curly-braces|current-contract-region|flat-contract-predicate|make-chaperone-contract|tcp-accept/enable-break|call-with-output-string|module-compiled-imports|file-stream-buffer-mode|impersonator-prop:blame|exn:fail:contract:arity|in-immutable-hash-pairs|load-relative-extension|exn:fail:contract:blame|liberal-define-context\?|interface-&gt;method-names|break-parameterization\?|prop:chaperone-contract|build-contract-property|system-language\+country|module-path-index-split|module-compiled-exports|regexp-match-positions\*|prop:rename-transformer|wrapped-extra-arg-arrow|make-rename-transformer|make-pipe-with-specials|continuation-mark-key/c|use-compiled-file-paths|syntax-local-submodules|exn:fail:read:non-char\?|exn:fail:out-of-memory\?|prop:exn:missing-module|exn:fail:network:errno\?|prop:expansion-contexts|make-mutable-custom-set|make-limited-input-port|make-hasheq-placeholder|udp-multicast-interface|prop:recursive-contract|make-sibling-inspector|current-code-inspector|impersonator-ephemeron|blame-replace-negative|exn-continuation-marks|delete-directory/files|call-with-input-string|make-parent-directory\*|integer-sqrt/remainder|impersonate-prompt-tag|impersonator-property\?|open-input-output-file|string-locale-downcase|module-path-index-join|impersonate-procedure\*|syntax-local-introduce|load-on-demand-enabled|make-immutable-hasheqv|integer-bytes-&gt;integer|integer-&gt;integer-bytes|make-exn:fail:read:eof|locale-string-encoding|make-keyword-procedure|filter-read-input-port|bytes-&gt;immutable-bytes|udp-multicast-set-ttl!|custom-print-quotable\?|thread/suspend-to-kill|namespace-require/copy|custodian-shutdown-all|filesystem-change-evt\?|syntax-local-certifier|current-load-extension|custodian-managed-list|prop:checked-procedure|in-immutable-hash-keys|struct:exn:fail:object|regexp-match-positions|continuation-mark-set\?|continuation-mark-key\?|system-library-subpath|custodian-limit-memory|impersonator-contract\?|transplant-output-port|exn:fail:network:errno|make-custom-hash-types|struct-type-property/c|exn:fail:out-of-memory|with-input-from-string|exn:fail:read:non-char|matches-arity-exactly\?|procedure-struct-type\?|place-message-allowed\?|struct:exn:fail:syntax|procedure-result-arity|make-derived-parameter|call-with-output-bytes|arity-checking-wrapper|procedure-reduce-arity|pretty-print-size-hook|make-exn:break:hang-up|make-exn:fail:contract|environment-variables\?|current-security-guard|in-mutable-hash-values|read-accept-quasiquote|primitive-result-arity|make-syntax-introducer|hash-iterate-key\+value|call-with-output-file\*|exn:break-continuation|bytes-close-converter|raise-arguments-error|make-set!-transformer|make-weak-custom-hash|in-mutable-hash-pairs|call-with-output-file|read-bytes-avail!-evt|path-for-some-system\?|special-comment-value|exn:fail:unsupported\?|coerce-flat-contracts|with-input-from-bytes|struct:arity-at-least|peek-bytes-avail!-evt|exn:fail:syntax-exprs|place-channel-put/get|read-accept-infix-dot|struct-type-property\?|resolved-module-path\?|make-custom-set-types|exn:fail:read-srclocs|string-&gt;bytes/latin-1|display-lines-to-file|plumber-flush-handle\?|call-with-input-file\*|prop:set!-transformer|read-accept-bar-quote|chaperone-struct-type|error-display-handler|transplant-input-port|bad-number-of-results|regexp-max-lookbehind|call-with-input-bytes|bytes-&gt;string/latin-1|parameter-procedure=\?|filesystem-change-evt|call-in-nested-thread|with-output-to-string|module-&gt;language-info|make-exn:fail:network|char-general-category|thread-rewind-receive|write-bytes-avail-evt|udp-receive-ready-evt|impersonate-procedure|string-normalize-nfkd|custom-write-accessor|make-hash-placeholder|dict-can-remove-keys\?|udp-send/enable-break|read-on-demand-source|date-time-zone-offset|read-syntax/recursive|blame-add-car-context|blame-add-cdr-context|string-normalize-nfkc|make-immutable-hasheq|vector-split-at-right|path-element-&gt;string|string-normalize-nfc|exn:break:terminate\?|current-blame-format|string-normalize-nfd|datum-intern-literal|fsemaphore-try-wait\?|reencode-output-port|copy-directory/files|port-writes-special\?|impersonate-hash-set|make-exn:fail:syntax|namespace-base-phase|chaperone-procedure\*|port-display-handler|contract-first-order|list-&gt;mutable-seteqv|make-exn:fail:object|bytes-open-converter|raise-mismatch-error|real-&gt;decimal-string|interface-extension\?|date\*-time-zone-name|current-milliseconds|syntax-source-module|chaperone-prompt-tag|write-special-avail\*|string-locale-upcase|syntax-transforming\?|call-with-input-file|prop:impersonator-of|compiled-expression\?|exn:fail:filesystem\?|struct:exn:fail:read|module-compiled-name|find-executable-path|relocate-output-port|error-escape-handler|read-eval-print-loop|read-char-or-special|pretty-print-columns|read-accept-compiled|arrow-contract-info\?|syntax-local-context|string-&gt;bytes/locale|method-in-interface\?|make-primitive-class|prop:arrow-contract\?|sequence-add-between|pretty-print-handler|pretty-print-newline|collection-file-path|current-reader-guard|arity-at-least-value|coerce-flat-contract|bytes-&gt;string/locale|generate-temporaries|exn:fail:unsupported|struct:exn:fail:user|current-thread-group|path-&gt;directory-path|path-convention-type|make-special-comment|read-byte-or-special|with-output-to-bytes|exn:srclocs-accessor|peek-char-or-special|string-&gt;path-element|with-input-from-file|raise-argument-error|in-mutable-hash-keys|procedure-specialize|blame-missing-party\?|peek-byte-or-special|make-weak-custom-set|make-empty-namespace|regexp-replace-quote|raise-contract-error|filesystem-root-list|match-equality-test|path-replace-suffix|print-vector-length|path-element-&gt;bytes|make-temporary-file|custodian-box-value|exn:missing-module\?|print-as-expression|split-common-prefix|prop:arrow-contract|path-&gt;complete-path|file-name-from-path|read-bytes-line-evt|read-case-sensitive|dict-value-contract|bytes-&gt;string/utf-8|pipe-content-length|make-security-guard|with-output-to-file|arrow-contract-info|in-input-port-chars|string-&gt;bytes/utf-8|in-values\*-sequence|bytes-&gt;path-element|current-prompt-read|make-base-namespace|in-weak-hash-values|make-arity-at-least|relocate-input-port|semaphore-peek-evt\?|current-output-port|semaphore-try-wait\?|chaperone-procedure|open-output-nowhere|thread-cell-values\?|listen-port-number\?|syntax-track-origin|make-mixin-contract|string-utf-8-length|chaperone-contract\?|generate-member-key|exn:fail:filesystem|variable-reference\?|make-lock-file-name|flat-named-contract|real-&gt;double-flonum|impersonate-channel|contract-projection|real-&gt;single-flonum|reencode-input-port|port-writes-atomic\?|call-with-semaphore|list-&gt;mutable-seteq|rename-transformer\?|prop:place-location|make-immutable-hash|port-try-file-lock\?|exn:break:terminate|regexp-match-exact\?|in-input-port-bytes|bytes-utf-8-length|blame-fmt-&gt;-string|prop:orc-contract\?|thread-receive-evt|sequence-generate\*|make-phantom-bytes|set-phantom-bytes!|syntax-local-value|prop:flat-contract|bound-identifier=\?|write-bytes-avail\*|dict-iter-contract|plumber-add-flush!|module-predefined\?|thread-suspend-evt|thread-try-receive|module-path-index\?|dict-iterate-first|find-relative-path|semaphore-peek-evt|open-output-string|string-locale-ci&gt;\?|order-of-magnitude|string-locale-ci=\?|dict-iterate-value|in-weak-hash-pairs|prop:dict/contract|string-locale-ci&lt;\?|in-values-sequence|filename-extension|make-custodian-box|take-common-prefix|symbol-unreadable\?|drop-common-prefix|raise-result-error|parse-command-line|procedure-keywords|quotient/remainder|print-syntax-width|make-will-executor|dynamic-set-field!|expand-to-top-form|expand-syntax-once|primitive-closure\?|equal-contract-val|hash-iterate-first|pretty-print-depth|vector-immutableof|current-memory-use|vector-immutable/c|hash-iterate-value|the-unsupplied-arg|make-exn:fail:read|current-input-port|raise-syntax-error|peek-bytes-avail!\*|peeking-input-port|make-exn:fail:user|udp-send-ready-evt|read-accept-reader|make-flat-contract|stream-add-between|exn:fail:read:eof\?|current-error-port|port-write-handler|chaperone-hash-set|make-proj-contract|exn:break:hang-up\?|make-prefab-struct|impersonate-vector|identifier-binding|impersonate-struct|system-big-endian\?|read-bytes-avail!\*|port-print-handler|port-next-location|port-commit-peeked|contract-stronger\?|contract-property\?|exn:fail:contract\?|continuation-marks|port-counts-lines\?|port-file-identity|exn:fail:contract|contract-exercise|bytes-utf-8-index|make-log-receiver|port-count-lines!|system\*/exit-code|remove-duplicates|port-&gt;bytes-lines|exn:fail:network\?|plumber-flush-all|port-progress-evt|thread-resume-evt|exn:break:hang-up|port-read-handler|current-custodian|read-accept-graph|current-directory|exn:fail:read:eof|tcp-accept-ready\?|make-reader-graph|implementation\?/c|place-channel-put|place-channel-get|make-shared-bytes|coerce-contract/f|bytes-convert-end|hash-placeholder\?|set!-transformer\?|close-output-port|raise-range-error|current-inspector|udp-multicast-ttl|vector-filter-not|prefab-struct-key|in-immutable-hash|hash-iterate-pair|error-print-width|hash-iterate-next|current-namespace|peek-bytes-avail!|read-bytes-avail!|char-iso-control\?|current-readtable|make-thread-group|raise-blame-error|raise-arity-error|make-weak-hasheqv|vector-take-right|vector-drop-right|externalizable&lt;%&gt;|procedure-&gt;method|chaperone-channel|cartesian-product|dynamic-get-field|file-&gt;bytes-lines|parameterization\?|subprocess-status|member-name-key=\?|tail-marks-match\?|sync/enable-break|file-stream-port\?|prop:arity-string|directory-exists\?|syntax-debug-info|bitwise-bit-field|prop:custom-write|other-execute-bit|in-weak-hash-keys|module-&gt;namespace|dict-key-contract|group-execute-bit|char-utf-8-length|dict-iterate-next|write-bytes-avail|get-output-string|input-port-append|open-output-bytes|open-input-string|load/use-compiled|object-or-false=\?|readtable-mapping|dict-implements/c|namespace-anchor\?|non-empty-string\?|sequence-for-each|syntax-local-name|regexp-match-peek|namespace-require|write-special-evt|list-&gt;weak-seteqv|sequence-generate|char-punctuation\?|prop:orc-contract|free-identifier=\?|blame-add-context|list-&gt;mutable-set|dump-memory-stats|normalized-arity\?|make-output-port|set-implements/c|open-output-file|find-system-path|placeholder-set!|prop:output-port|degrees-&gt;radians|delete-directory|exn:fail:object\?|date\*-nanosecond|prop:object-name|open-input-bytes|make-weak-hasheq|make-thread-cell|prop:exn:srclocs|bitwise-bit-set\?|struct-type-info|dict-implements\?|dict-iterate-key|exn:fail:network|syntax-original\?|hash-iterate-key|member-name-key\?|list-&gt;weak-seteq|regexp-match/end|make-struct-type|tcp-abandon-port|object-interface|system/exit-code|raise-user-error|read-string!-evt|raise-type-error|regexp-try-match|string-contains\?|sequence-&gt;stream|char-title-case\?|char-whitespace\?|port-file-unlock|promise-running\?|thread-cell-set!|bytes-converter\?|make-rectangular|string-titlecase|check-duplicates|channel-put-evt\?|syntax-recertify|coerce-contracts|normal-case-path|class-&gt;interface|symbol-interned\?|make-placeholder|non-empty-listof|user-execute-bit|dynamic-object/c|procedure-rename|read-accept-lang|char-alphabetic\?|module-declared\?|failure-result/c|exn:fail:syntax\?|char-upper-case\?|will-try-execute|impersonate-hash|chaperone-vector|procedure-arity\?|regexp-match-evt|vector-immutable|simple-form-path|make-custom-hash|chaperone-struct|in-immutable-set|natural-number/c|pathlist-closure|get-output-bytes|radians-&gt;degrees|char-lower-case\?|eval-jit-enabled|make-do-sequence|expand-user-path|struct:exn:break|fsemaphore-count|print-unreadable|peek-string!-evt|special-comment\?|impersonator-of\?|arithmetic-shift|udp-receive!-evt|call-with-values|futures-enabled\?|print-hash-table|close-input-port|make-custom-set|peek-bytes!-evt|string-no-nuls\?|string-locale&gt;\?|splitf-at-right|in-mutable-hash|subprocess-kill|srcloc-position|udp-open-socket|vector-split-at|string-locale=\?|struct:exn:fail|syntax-position|syntax-property|fsemaphore-wait|fsemaphore-post|pretty-printing|dynamic-require|string-locale&lt;\?|in-combinations|read-bytes!-evt|make-fsemaphore|current-seconds|arity-at-least\?|implementation\?|ephemeron-value|udp-send-to-evt|box-immutable/c|arity-includes\?|unspecified-dom|bytes-utf-8-ref|eq-contract-val|in-permutations|equal-contract\?|impersonate-box|make-input-port|current-plumber|coerce-contract|blame-original\?|unsupplied-arg\?|peek-string-evt|exn:misc:match\?|make-directory\*|put-preferences|rename-contract|procedure-arity|set-implements\?|shrink-path-wrt|dup-output-port|port-closed-evt|thread-dead-evt|security-guard\?|system-idle-evt|subprocess-wait|path-add-suffix|channel-try-get|normalize-arity|collect-garbage|stream-for-each|current-compile|exn:fail:syntax|display-to-file|group-write-bit|module-&gt;imports|processor-count|thread-running\?|promise-forced\?|string-&gt;keyword|module-&gt;exports|equal-hash-code|string-foldcase|syntax-tainted\?|read-string-evt|sequence-andmap|sequence-append|thread-cell-ref|sequence-filter|channel-put-evt|prop:contracted|other-write-bit|would-be-future|prop:equal\+hash|place-location\?|sequence-length|read-accept-box|regexp-replaces|string-downcase|collection-path|exn:fail:object|read-accept-dot|prop:input-port|placeholder-get|keyword-&gt;string|open-input-file|hash-copy-clear|regexp-replace\*|read-bytes-line|regexp-replace|string-append\*|make-weak-hash|terminal-port\?|compile-syntax|poll-guard-evt|complete-path\?|string-&gt;symbol|exn:fail:read\?|place-enabled\?|string-&gt;number|place-dead-evt|place-channel\?|mixin-contract|make-semaphore|make-readtable|convert-stream|group-read-bit|user-write-bit|value-contract|syntax-protect|relative-path\?|current-future|list-contract\?|make-parameter|get-preference|exact-&gt;inexact|exn:fail:user\?|phantom-bytes\?|current-locale|bytes-no-nuls\?|current-logger|pretty-display|make-inspector|chaperone-hash|in-bytes-lines|peek-bytes-evt|mutable-seteqv|arity-at-least|nack-guard-evt|current-thread|in-dict-values|empty-sequence|in-hash-values|blame-swapped\?|custodian-box\?|vector-&gt;values|weak-box-value|srcloc-&gt;string|in-mutable-set|blame-positive|split-at-right|make-exn:break|blame-negative|make-ephemeron|udp-connected\?|blame-contract|dynamic-place\*|make-directory|load-extension|read-bytes-evt|single-flonum\?|make-custodian|will-executor\?|subprocess-pid|dup-input-port|string-replace|inexact-&gt;exact|semaphore-post|symbol-&gt;string|string-suffix\?|log-all-levels|semaphore-wait|double-flonum\?|normalize-path|thread-suspend|process\*/ports|flat-contract\?|char-symbolic\?|read/recursive|number-&gt;string|sequence-&gt;list|integer-length|sequence-count|object-&gt;vector|proper-subset\?|directory-list|file-position\*|absolute-path\?|list-&gt;weak-set|other-read-bit|thread-receive|set-intersect!|tcp-accept-evt|sequence-ormap|set-copy-clear|struct-&gt;vector|char-titlecase|prop:procedure|keywords-match|exact-integer\?|string-prefix\?|exact-truncate|stream-empty\?|read-line-evt|string-upcase|vector-argmin|flat-contract|date-year-day|vector-argmax|file-truncate|keyword-apply|vector-append|file-position|thread-resume|write-to-file|tcp-addresses|sequence-tail|date-week-day|write-special|custom-write\?|dict-for-each|dict-has-key\?|set-intersect|path-element\?|thread-group\?|dict-mutable\?|regexp-match\*|datum-&gt;syntax|prop:contract|read-language|prop:sequence|char-numeric\?|blame-context|syntax-column|expand-syntax|tcp-listener\?|syntax-&gt;datum|promise/name\?|sequence-fold|base-&gt;-rngs/c|base-&gt;-doms/c|mutable-seteq|box-immutable|load-relative|break-enabled|integer-&gt;char|progress-evt\?|process/ports|display-lines|set-subtract!|log-level-evt|log-max-level|exn:fail:user|log-receiver\?|byte-pregexp\?|place-channel|char-graphic\?|inexact-real\?|char-foldcase|string-length|seconds-&gt;date|has-contract\?|will-register|char-downcase|regexp-match\?|exn:fail:read|udp-addresses|make-contract|simplify-path|dynamic-place|chaperone-box|make-exn:fail|string-append|srcloc-column|make-weak-box|hash-for-each|chaperone-evt|hash-has-key\?|bytes-append\*|bytes-convert|stream-filter|in-hash-pairs|in-dict-pairs|udp-receive!\*|srcloc-source|struct:srcloc|syntax-source|continuation\?|contract-name|contract-proc|impersonator\?|chaperone-of\?|user-read-bit|vector-member|shell-execute|vector-filter|stream-length|current-print|current-drive|stream-andmap|vector-length|pretty-format|exact-ceiling|char-&gt;integer|stream-append|eqv-hash-code|syntax-disarm|regexp-split|stream-count|bytes-length|current-load|stream-first|pretty-print|equal\?/recur|make-plumber|current-eval|exit-handler|stream-ormap|eq-hash-code|syntax-rearm|eq-contract\?|hash-update!|make-hasheqv|string-&gt;list|udp-send-to\*|make-generic|stream-&gt;list|udp-send-evt|syntax-taint|vector-set\*!|hash-remove!|pretty-write|in-dict-keys|port-closed\?|string-&gt;path|empty-stream|udp-receive!|in-directory|in-hash-keys|dynamic-wind|port-&gt;string|dynamic-send|bytes-append|vector-fill!|print-struct|string-ci&lt;=\?|resolve-path|placeholder\?|in-sequences|printable&lt;%&gt;|string-ci&gt;=\?|udp-connect!|thread-cell\?|regexp-quote|will-execute|combinations|string-copy!|string-fill!|make-channel|string-len/c|shared-bytes|in-weak-hash|byte-regexp\?|byte-pregexp|build-vector|build-string|permutations|set-subtract|module-path\?|local-expand|generic-set\?|instanceof/c|break-thread|peek-string!|exn:srclocs\?|vector-&gt;list|blame-update|sync/timeout|integer-sqrt|blame-source|dict-update!|cleanse-path|explode-path|list-prefix\?|string-port\?|path-string\?|set-mutable\?|dict-remove!|vector-count|list-&gt;vector|list-&gt;string|list-&gt;seteqv|thread-dead\?|regexp-match|flush-output|struct-type\?|class-unseal|string-split|sequence-map|path-&gt;string|sequence-ref|link-exists\?|file-&gt;string|write-string|file-exists\?|port-number\?|read-string!|vector-copy!|output-port\?|set-for-each|struct:date\*|syntax-&gt;list|make-logger|string-join|dict-update|subprocess\?|prop:stream|dropf-right|write-bytes|in-weak-set|input-port\?|writable&lt;%&gt;|add-between|set-remove!|set-member\?|printable/c|weak-seteqv|print-graph|subclass\?/c|eof-object\?|syntax-line|hash-clear!|vector-take|prefab-key\?|predicate/c|string-copy|eval-syntax|exact-floor|port-&gt;lines|vector-set!|random-seed|exact-round|string-ci&gt;\?|rationalize|vector-memv|port-&gt;bytes|vector-memq|vector-map!|kill-thread|place-sleep|in-producer|place-break|dict-empty\?|vector-drop|exn-message|peek-string|in-parallel|read-bytes!|string-ci=\?|peek-bytes!|dict-clear!|string-ci&lt;\?|hash-empty\?|bitwise-and|in-naturals|path-&gt;bytes|hash-equal\?|denominator|set-&gt;stream|delete-file|parameter/c|vector-copy|bitwise-ior|bitwise-not|bitwise-xor|hash-remove|expand-once|blame-value|char-blank\?|object-name|read-string|object-info|string-set!|date-second|read-syntax|date-minute|struct:date|byte-ready\?|list-&gt;bytes|byte-regexp|bytes-&gt;list|value-blame|bytes-&gt;path|field-names|hash-update|bytes-copy!|bytes-fill!|hash-values|list-&gt;seteq|srcloc-line|string-trim|list-update|stream-tail|file-&gt;bytes|file-&gt;lines|udp-send-to|mutable-set|stream-rest|syntax-span|handle-evt\?|merge-input|log-message|logger-name|thread-wait|thread-send|channel-get|channel-put|dict-remove|system-type|srcloc-span|make-vector|make-string|make-srcloc|takef-right|char-upcase|stream-fold|make-object|struct-info|identifier\?|char-ready\?|reroot-path|replace-evt|make-none/c|make-hasheq|stop-before|tcp-connect|file-&gt;value|fsemaphore\?|dict-values|immutable\?|stop-after|filter-map|filter-not|char-ci&gt;=\?|make-date\*|file-&gt;list|make-polar|tcp-accept|find-files|take-right|make-bytes|char-ci&lt;=\?|chaperone\?|time-apply|stream-map|log-level\?|choice-evt|class-info|semaphore\?|class-seal|udp-bound\?|stream-ref|namespace\?|bytes-set!|first-or/c|hash-weak\?|in-indexed|custodian\?|bytes-join|bytes-copy|readtable\?|build-path|struct:exn|build-list|date-month|sequence/c|hash-set\*!|blame-swap|parameter\?|split-path|exn:break\?|fold-files|string-ref|dict-&gt;list|dict-clear|drop-right|set-clear!|peek-bytes|read-bytes|hash-count|set-empty\?|dict-count|set-equal\?|vector-map|place-kill|place-wait|vector-ref|port-&gt;list|append-map|primitive\?|ephemeron\?|weak-seteq|hash-clear|always-evt|interface\?|subprocess|integer-in|set-remove|hash-&gt;list|tcp-listen|inspector\?|procedure\?|dynamic-&gt;\*|syntax-arm|write-byte|has-blame\?|set-union!|write-char|prop:blame|dict-set\*!|handle-evt|displayln|suggest/c|substring|set-weak\?|in-vector|set-union|in-syntax|infinite\?|in-string|in-stream|dict-set\*|set-mcdr!|subclass\?|set-mcar!|dict-set!|dict-ref!|keyword&lt;\?|dict-keys|set-first|set-count|dict-copy|exn:break|set-clear|set-&gt;list|last-pair|splitf-at|exn:fail\?|date-year|date-hour|date-dst\?|list-&gt;set|copy-port|list-tail|copy-file|contract\?|magnitude|make-date|make-hash|make-list|tcp-close|file-size|char-in/c|imag-part|tcp-port\?|char-ci&gt;\?|char-ci=\?|remainder|make-pipe|char-ci&lt;\?|channel/c|udp-bind!|string&gt;=\?|udp-close|udp-send\*|bytes-ref|string&lt;=\?|negative\?|never-evt|new-∀/c|new-∃/c|real-part|numerator|hash-set\*|hash-set!|boolean=\?|read-line|hash-ref!|read-char|read-cdot|hash-keys|hash-eqv\?|partition|path-only|between/c|peek-byte|peek-char|read-byte|rational\?|hash-copy|positive\?|weak-box\?|print-box|alarm-evt|guard-evt|promise/c|prop:dict|conjugate|sequence\?|in-range|group-by|set-eqv\?|set-box!|generic\?|dict-map|dict-ref|channel\?|hash-eq\?|set-add!|dict-set|one-of/c|box-cas!|for-each|make-exn|set-copy|hash-map|hash-ref|hash-set|syntax-e|integer\?|set-rest|inexact\?|vectorof|truncate|stream/c|string&lt;\?|string=\?|symbol=\?|string&gt;\?|symbol&lt;\?|vector/c|prop:evt|plumber\?|pregexp\?|identity|in-value|list-set|in-bytes|in-cycle|weak-set|in-slice|date-day|subbytes|in-lines|list-ref|boolean\?|udp-send|promise\?|process\*|keyword\?|equal&lt;%&gt;|object=\?|compose1|exn:fail|in-mlist|split-at|syntax/c|quotient|wrap-evt|complex\?|char&lt;=\?|system\*|println|syntax\?|in-port|compose|in-list|conjoin|regexp\?|bytes&gt;\?|process|compile|\*list/c|object%|thread\?|eof-evt|load/cd|logger\?|struct\?|pregexp|bytes=\?|in-hash|in-dict|srcloc\?|list\*of|append\*|shuffle|writeln|call/cc|hasheqv|subset\?|seventh|char&gt;=\?|call/ec|number\?|bytes&lt;\?|string\?|object\?|symbol\?|symbols|version|display|disjoin|stream\?|vector\?|fixnum\?|arity=\?|flatten|flonum\?|set-map|reverse|newline|ceiling|fprintf|is-a\?/c|future\?|real-in|char-in|remove\*|set-eq\?|set-add|base-&gt;\?|eprintf|andmap|modulo|blame\?|cdaadr|cdaaar|seteqv|length|eighth|vector|cadddr|caddar|date\*\?|cdaddr|cadadr|empty\?|curryr|cadaar|caaddr|in-set|equal\?|mpair\?|list/c|cddaar|cddadr|member|argmax|cons/c|argmin|listof|caadar|printf|caaadr|caaaar|bytes\?|system|putenv|exact\?|expand|class\?|random|srcloc|cdddar|false\?|filter|char&gt;\?|hasheq|none/c|second|cddddr|hash/c|string|place\?|char=\?|values|char&lt;\?|negate|append|regexp|cdadar|fourth|future|banner|gensym|getenv|remove|thread|format|path&lt;\?|tenth|third|remf\*|path\?|char\?|ninth|remq\*|pair\?|ormap|mcons|assoc|remv\*|round|cdddr|takef|range|cons\?|cddar|const|list\?|apply|port\?|count|curry|touch|cdadr|date\*|list\*|date\?|findf|is-a\?|box/c|set/c|set=\?|dict\?|void\?|null\?|seteq|dropf|not/c|caddr|empty|print|cadar|raise|any/c|byte\?|caadr|sixth|angle|and/c|error|caaar|n-&gt;th|sleep|even\?|evt/c|write|bytes|unbox|fifth|unit\?|first|floor|foldl|foldr|force|real\?|zero\?|hash\?|cdaar|sinh|nan\?|udp\?|caar|cadr|null|hash|rest|box\?|&lt;=/c|memv|expt|true|memq|cdar|memf|cddr|odd\?|exn\?|or/c|mcdr|mcar|if/c|eqv\?|exit|remf|remq|atan|assv|assq|remv|assf|asin|pi\.f|tanh|&gt;=/c|take|read|acos|load|cons|sort|add1|cosh|date|list|evt\?|eval|last|sync|void|set\?|drop|sub1|sqrt|sin|sgn|eof|~\.a|eq\?|&lt;/c|lcm|set|cos|~\.s|log|abs|tan|~\.v|gcd|map|xor|=/c|max|cdr|exp|sqr|box|min|car|&gt;/c|not|exn|~v|~s|&lt;=|~r|~e|~a|&gt;=|pi|/|\*|&gt;|\+|=|-|&lt;)(?=[()[\]{}&#34;,\&#39;`;\s])">
219 <token type="NameBuiltin"/>
220 <pop depth="1"/>
221 </rule>
222 <rule pattern="(?:\|[^|]*\||\\[\w\W]|[^|\\()[\]{}&#34;,\&#39;`;\s]+)+">
223 <token type="Name"/>
224 <pop depth="1"/>
225 </rule>
226 <rule>
227 <include state="datum*"/>
228 </rule>
229 </state>
230 <state name="unquoted-list">
231 <rule>
232 <include state="list"/>
233 </rule>
234 <rule pattern="(?!\Z)">
235 <token type="Text"/>
236 <push state="unquoted-datum"/>
237 </rule>
238 </state>
239 <state name="quasiquoted-datum">
240 <rule>
241 <include state="datum"/>
242 </rule>
243 <rule pattern=",@?">
244 <token type="Operator"/>
245 <push state="#pop" state="unquoted-datum"/>
246 </rule>
247 <rule pattern="unquote(-splicing)?(?=[()[\]{}&#34;,\&#39;`;\s])">
248 <token type="Keyword"/>
249 <push state="#pop" state="unquoted-datum"/>
250 </rule>
251 <rule pattern="[([{]">
252 <token type="Punctuation"/>
253 <push state="#pop" state="quasiquoted-list"/>
254 </rule>
255 <rule>
256 <include state="datum*"/>
257 </rule>
258 </state>
259 </rules>
260</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml
new file mode 100644
index 0000000..69638d2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ragel.xml
@@ -0,0 +1,149 @@
1<lexer>
2 <config>
3 <name>Ragel</name>
4 <alias>ragel</alias>
5 </config>
6 <rules>
7 <state name="host">
8 <rule pattern="([^{}\&#39;&#34;/#]+|[^\\]\\[{}]|&#34;(\\\\|\\&#34;|[^&#34;])*&#34;|&#39;(\\\\|\\&#39;|[^&#39;])*&#39;|//.*$\n?|/\*(.|\n)*?\*/|\#.*$\n?|/(?!\*)(\\\\|\\/|[^/])*/|/)+">
9 <token type="Other"/>
10 </rule>
11 <rule pattern="\{">
12 <token type="Punctuation"/>
13 <push/>
14 </rule>
15 <rule pattern="\}">
16 <token type="Punctuation"/>
17 <pop depth="1"/>
18 </rule>
19 </state>
20 <state name="whitespace">
21 <rule pattern="\s+">
22 <token type="TextWhitespace"/>
23 </rule>
24 </state>
25 <state name="numbers">
26 <rule pattern="0x[0-9A-Fa-f]+">
27 <token type="LiteralNumberHex"/>
28 </rule>
29 <rule pattern="[+-]?[0-9]+">
30 <token type="LiteralNumberInteger"/>
31 </rule>
32 </state>
33 <state name="literals">
34 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
35 <token type="LiteralString"/>
36 </rule>
37 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
38 <token type="LiteralString"/>
39 </rule>
40 <rule pattern="\[(\\\\|\\\]|[^\]])*\]">
41 <token type="LiteralString"/>
42 </rule>
43 <rule pattern="/(?!\*)(\\\\|\\/|[^/])*/">
44 <token type="LiteralStringRegex"/>
45 </rule>
46 </state>
47 <state name="keywords">
48 <rule pattern="(access|action|alphtype)\b">
49 <token type="Keyword"/>
50 </rule>
51 <rule pattern="(getkey|write|machine|include)\b">
52 <token type="Keyword"/>
53 </rule>
54 <rule pattern="(any|ascii|extend|alpha|digit|alnum|lower|upper)\b">
55 <token type="Keyword"/>
56 </rule>
57 <rule pattern="(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b">
58 <token type="Keyword"/>
59 </rule>
60 </state>
61 <state name="identifiers">
62 <rule pattern="[a-zA-Z_]\w*">
63 <token type="NameVariable"/>
64 </rule>
65 </state>
66 <state name="root">
67 <rule>
68 <include state="literals"/>
69 </rule>
70 <rule>
71 <include state="whitespace"/>
72 </rule>
73 <rule>
74 <include state="comments"/>
75 </rule>
76 <rule>
77 <include state="keywords"/>
78 </rule>
79 <rule>
80 <include state="numbers"/>
81 </rule>
82 <rule>
83 <include state="identifiers"/>
84 </rule>
85 <rule>
86 <include state="operators"/>
87 </rule>
88 <rule pattern="\{">
89 <token type="Punctuation"/>
90 <push state="host"/>
91 </rule>
92 <rule pattern="=">
93 <token type="Operator"/>
94 </rule>
95 <rule pattern=";">
96 <token type="Punctuation"/>
97 </rule>
98 </state>
99 <state name="comments">
100 <rule pattern="\#.*$">
101 <token type="Comment"/>
102 </rule>
103 </state>
104 <state name="operators">
105 <rule pattern=",">
106 <token type="Operator"/>
107 </rule>
108 <rule pattern="\||&amp;|--?">
109 <token type="Operator"/>
110 </rule>
111 <rule pattern="\.|&lt;:|:&gt;&gt;?">
112 <token type="Operator"/>
113 </rule>
114 <rule pattern=":">
115 <token type="Operator"/>
116 </rule>
117 <rule pattern="-&gt;">
118 <token type="Operator"/>
119 </rule>
120 <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(/|eof\b)">
121 <token type="Operator"/>
122 </rule>
123 <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(!|err\b)">
124 <token type="Operator"/>
125 </rule>
126 <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(\^|lerr\b)">
127 <token type="Operator"/>
128 </rule>
129 <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(~|to\b)">
130 <token type="Operator"/>
131 </rule>
132 <rule pattern="(&gt;|\$|%|&lt;|@|&lt;&gt;)(\*|from\b)">
133 <token type="Operator"/>
134 </rule>
135 <rule pattern="&gt;|@|\$|%">
136 <token type="Operator"/>
137 </rule>
138 <rule pattern="\*|\?|\+|\{[0-9]*,[0-9]*\}">
139 <token type="Operator"/>
140 </rule>
141 <rule pattern="!|\^">
142 <token type="Operator"/>
143 </rule>
144 <rule pattern="\(|\)">
145 <token type="Operator"/>
146 </rule>
147 </state>
148 </rules>
149</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml
new file mode 100644
index 0000000..a4109b0
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/react.xml
@@ -0,0 +1,236 @@
1<lexer>
2 <config>
3 <name>react</name>
4 <alias>jsx</alias>
5 <alias>react</alias>
6 <filename>*.jsx</filename>
7 <filename>*.react</filename>
8 <mime_type>text/jsx</mime_type>
9 <mime_type>text/typescript-jsx</mime_type>
10 <dot_all>true</dot_all>
11 </config>
12 <rules>
13 <state name="commentsandwhitespace">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="&lt;!--">
18 <token type="Comment"/>
19 </rule>
20 <rule pattern="//.*?\n">
21 <token type="CommentSingle"/>
22 </rule>
23 <rule pattern="/\*.*?\*/">
24 <token type="CommentMultiline"/>
25 </rule>
26 </state>
27 <state name="slashstartsregex">
28 <rule>
29 <include state="commentsandwhitespace"/>
30 </rule>
31 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
32 <token type="LiteralStringRegex"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="(?=/)">
36 <token type="Text"/>
37 <push state="#pop" state="badregex"/>
38 </rule>
39 <rule>
40 <pop depth="1"/>
41 </rule>
42 </state>
43 <state name="tag">
44 <rule pattern="\s+">
45 <token type="Text"/>
46 </rule>
47 <rule pattern="([\w]+\s*)(=)(\s*)">
48 <bygroups>
49 <token type="NameAttribute"/>
50 <token type="Operator"/>
51 <token type="Text"/>
52 </bygroups>
53 <push state="attr"/>
54 </rule>
55 <rule pattern="[{}]+">
56 <token type="Punctuation"/>
57 </rule>
58 <rule pattern="[\w\.]+">
59 <token type="NameAttribute"/>
60 </rule>
61 <rule pattern="(/?)(\s*)(&gt;)">
62 <bygroups>
63 <token type="Punctuation"/>
64 <token type="Text"/>
65 <token type="Punctuation"/>
66 </bygroups>
67 <pop depth="1"/>
68 </rule>
69 </state>
70 <state name="expression">
71 <rule pattern="{">
72 <token type="Punctuation"/>
73 <push/>
74 </rule>
75 <rule pattern="}">
76 <token type="Punctuation"/>
77 <pop depth="1"/>
78 </rule>
79 <rule>
80 <include state="root"/>
81 </rule>
82 </state>
83 <state name="attr">
84 <rule pattern="{">
85 <token type="Punctuation"/>
86 <push state="expression"/>
87 </rule>
88 <rule pattern="&#34;.*?&#34;">
89 <token type="LiteralString"/>
90 <pop depth="1"/>
91 </rule>
92 <rule pattern="&#39;.*?&#39;">
93 <token type="LiteralString"/>
94 <pop depth="1"/>
95 </rule>
96 <rule>
97 <pop depth="1"/>
98 </rule>
99 </state>
100 <state name="interp-inside">
101 <rule pattern="\}">
102 <token type="LiteralStringInterpol"/>
103 <pop depth="1"/>
104 </rule>
105 <rule>
106 <include state="root"/>
107 </rule>
108 </state>
109 <state name="badregex">
110 <rule pattern="\n">
111 <token type="Text"/>
112 <pop depth="1"/>
113 </rule>
114 </state>
115 <state name="jsx">
116 <rule pattern="(&lt;)(/?)(&gt;)">
117 <bygroups>
118 <token type="Punctuation"/>
119 <token type="Punctuation"/>
120 <token type="Punctuation"/>
121 </bygroups>
122 </rule>
123 <rule pattern="(&lt;)([\w\.]+)">
124 <bygroups>
125 <token type="Punctuation"/>
126 <token type="NameTag"/>
127 </bygroups>
128 <push state="tag"/>
129 </rule>
130 <rule pattern="(&lt;)(/)([\w\.]+)(&gt;)">
131 <bygroups>
132 <token type="Punctuation"/>
133 <token type="Punctuation"/>
134 <token type="NameTag"/>
135 <token type="Punctuation"/>
136 </bygroups>
137 </rule>
138 </state>
139 <state name="root">
140 <rule>
141 <include state="jsx"/>
142 </rule>
143 <rule pattern="\A#! ?/.*?\n">
144 <token type="CommentHashbang"/>
145 </rule>
146 <rule pattern="^(?=\s|/|&lt;!--)">
147 <token type="Text"/>
148 <push state="slashstartsregex"/>
149 </rule>
150 <rule>
151 <include state="commentsandwhitespace"/>
152 </rule>
153 <rule pattern="(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?">
154 <token type="LiteralNumberFloat"/>
155 </rule>
156 <rule pattern="0[bB][01]+">
157 <token type="LiteralNumberBin"/>
158 </rule>
159 <rule pattern="0[oO][0-7]+">
160 <token type="LiteralNumberOct"/>
161 </rule>
162 <rule pattern="0[xX][0-9a-fA-F]+">
163 <token type="LiteralNumberHex"/>
164 </rule>
165 <rule pattern="[0-9]+">
166 <token type="LiteralNumberInteger"/>
167 </rule>
168 <rule pattern="\.\.\.|=&gt;">
169 <token type="Punctuation"/>
170 </rule>
171 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
172 <token type="Operator"/>
173 <push state="slashstartsregex"/>
174 </rule>
175 <rule pattern="[{(\[;,]">
176 <token type="Punctuation"/>
177 <push state="slashstartsregex"/>
178 </rule>
179 <rule pattern="[})\].]">
180 <token type="Punctuation"/>
181 </rule>
182 <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
183 <token type="Keyword"/>
184 <push state="slashstartsregex"/>
185 </rule>
186 <rule pattern="(var|let|with|function)\b">
187 <token type="KeywordDeclaration"/>
188 <push state="slashstartsregex"/>
189 </rule>
190 <rule pattern="(abstract|async|await|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">
191 <token type="KeywordReserved"/>
192 </rule>
193 <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
194 <token type="KeywordConstant"/>
195 </rule>
196 <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
197 <token type="NameBuiltin"/>
198 </rule>
199 <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
200 <token type="NameOther"/>
201 </rule>
202 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
203 <token type="LiteralStringDouble"/>
204 </rule>
205 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
206 <token type="LiteralStringSingle"/>
207 </rule>
208 <rule pattern="`">
209 <token type="LiteralStringBacktick"/>
210 <push state="interp"/>
211 </rule>
212 </state>
213 <state name="interp">
214 <rule pattern="`">
215 <token type="LiteralStringBacktick"/>
216 <pop depth="1"/>
217 </rule>
218 <rule pattern="\\\\">
219 <token type="LiteralStringBacktick"/>
220 </rule>
221 <rule pattern="\\`">
222 <token type="LiteralStringBacktick"/>
223 </rule>
224 <rule pattern="\$\{">
225 <token type="LiteralStringInterpol"/>
226 <push state="interp-inside"/>
227 </rule>
228 <rule pattern="\$">
229 <token type="LiteralStringBacktick"/>
230 </rule>
231 <rule pattern="[^`\\$]+">
232 <token type="LiteralStringBacktick"/>
233 </rule>
234 </state>
235 </rules>
236</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml
new file mode 100644
index 0000000..8b7bcc5
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reasonml.xml
@@ -0,0 +1,147 @@
1<lexer>
2 <config>
3 <name>ReasonML</name>
4 <alias>reason</alias>
5 <alias>reasonml</alias>
6 <filename>*.re</filename>
7 <filename>*.rei</filename>
8 <mime_type>text/x-reasonml</mime_type>
9 </config>
10 <rules>
11 <state name="escape-sequence">
12 <rule pattern="\\[\\&#34;\&#39;ntbr]">
13 <token type="LiteralStringEscape"/>
14 </rule>
15 <rule pattern="\\[0-9]{3}">
16 <token type="LiteralStringEscape"/>
17 </rule>
18 <rule pattern="\\x[0-9a-fA-F]{2}">
19 <token type="LiteralStringEscape"/>
20 </rule>
21 </state>
22 <state name="root">
23 <rule pattern="\s+">
24 <token type="Text"/>
25 </rule>
26 <rule pattern="false|true|\(\)|\[\]">
27 <token type="NameBuiltinPseudo"/>
28 </rule>
29 <rule pattern="\b([A-Z][\w\&#39;]*)(?=\s*\.)">
30 <token type="NameNamespace"/>
31 <push state="dotted"/>
32 </rule>
33 <rule pattern="\b([A-Z][\w\&#39;]*)">
34 <token type="NameClass"/>
35 </rule>
36 <rule pattern="//.*?\n">
37 <token type="CommentSingle"/>
38 </rule>
39 <rule pattern="\/\*(?![\/])">
40 <token type="CommentMultiline"/>
41 <push state="comment"/>
42 </rule>
43 <rule pattern="\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b">
44 <token type="Keyword"/>
45 </rule>
46 <rule pattern="(~|\}|\|]|\||\|\||\{&lt;|\{|`|_|]|\[\||\[&gt;|\[&lt;|\[|\?\?|\?|&gt;\}|&gt;]|&gt;|=|&lt;-|&lt;|;;|;|:&gt;|:=|::|:|\.\.\.|\.\.|\.|=&gt;|-\.|-|,|\+|\*|\)|\(|&amp;&amp;|&amp;|#|!=)">
47 <token type="OperatorWord"/>
48 </rule>
49 <rule pattern="([=&lt;&gt;@^|&amp;+\*/$%-]|[!?~])?[!$%&amp;*+\./:&lt;=&gt;?@^|~-]">
50 <token type="Operator"/>
51 </rule>
52 <rule pattern="\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b">
53 <token type="OperatorWord"/>
54 </rule>
55 <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
56 <token type="KeywordType"/>
57 </rule>
58 <rule pattern="[^\W\d][\w&#39;]*">
59 <token type="Name"/>
60 </rule>
61 <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
62 <token type="LiteralNumberFloat"/>
63 </rule>
64 <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
65 <token type="LiteralNumberHex"/>
66 </rule>
67 <rule pattern="0[oO][0-7][0-7_]*">
68 <token type="LiteralNumberOct"/>
69 </rule>
70 <rule pattern="0[bB][01][01_]*">
71 <token type="LiteralNumberBin"/>
72 </rule>
73 <rule pattern="\d[\d_]*">
74 <token type="LiteralNumberInteger"/>
75 </rule>
76 <rule pattern="&#39;(?:(\\[\\\&#34;&#39;ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))&#39;">
77 <token type="LiteralStringChar"/>
78 </rule>
79 <rule pattern="&#39;.&#39;">
80 <token type="LiteralStringChar"/>
81 </rule>
82 <rule pattern="&#39;">
83 <token type="Keyword"/>
84 </rule>
85 <rule pattern="&#34;">
86 <token type="LiteralStringDouble"/>
87 <push state="string"/>
88 </rule>
89 <rule pattern="[~?][a-z][\w\&#39;]*:">
90 <token type="NameVariable"/>
91 </rule>
92 </state>
93 <state name="comment">
94 <rule pattern="[^\/*]+">
95 <token type="CommentMultiline"/>
96 </rule>
97 <rule pattern="\/\*">
98 <token type="CommentMultiline"/>
99 <push/>
100 </rule>
101 <rule pattern="\*\/">
102 <token type="CommentMultiline"/>
103 <pop depth="1"/>
104 </rule>
105 <rule pattern="[\*]">
106 <token type="CommentMultiline"/>
107 </rule>
108 </state>
109 <state name="string">
110 <rule pattern="[^\\&#34;]+">
111 <token type="LiteralStringDouble"/>
112 </rule>
113 <rule>
114 <include state="escape-sequence"/>
115 </rule>
116 <rule pattern="\\\n">
117 <token type="LiteralStringDouble"/>
118 </rule>
119 <rule pattern="&#34;">
120 <token type="LiteralStringDouble"/>
121 <pop depth="1"/>
122 </rule>
123 </state>
124 <state name="dotted">
125 <rule pattern="\s+">
126 <token type="Text"/>
127 </rule>
128 <rule pattern="\.">
129 <token type="Punctuation"/>
130 </rule>
131 <rule pattern="[A-Z][\w\&#39;]*(?=\s*\.)">
132 <token type="NameNamespace"/>
133 </rule>
134 <rule pattern="[A-Z][\w\&#39;]*">
135 <token type="NameClass"/>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="[a-z_][\w\&#39;]*">
139 <token type="Name"/>
140 <pop depth="1"/>
141 </rule>
142 <rule>
143 <pop depth="1"/>
144 </rule>
145 </state>
146 </rules>
147</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml
new file mode 100644
index 0000000..501d380
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/reg.xml
@@ -0,0 +1,68 @@
1<lexer>
2 <config>
3 <name>reg</name>
4 <alias>registry</alias>
5 <filename>*.reg</filename>
6 <mime_type>text/x-windows-registry</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="Windows Registry Editor.*">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="[;#].*">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$">
20 <bygroups>
21 <token type="Keyword"/>
22 <token type="Operator"/>
23 <token type="NameBuiltin"/>
24 <token type="Keyword"/>
25 </bygroups>
26 </rule>
27 <rule pattern="(&#34;(?:\\&#34;|\\\\|[^&#34;])+&#34;)([ \t]*)(=)([ \t]*)">
28 <bygroups>
29 <token type="NameAttribute"/>
30 <token type="Text"/>
31 <token type="Operator"/>
32 <token type="Text"/>
33 </bygroups>
34 <push state="value"/>
35 </rule>
36 <rule pattern="(.*?)([ \t]*)(=)([ \t]*)">
37 <bygroups>
38 <token type="NameAttribute"/>
39 <token type="Text"/>
40 <token type="Operator"/>
41 <token type="Text"/>
42 </bygroups>
43 <push state="value"/>
44 </rule>
45 </state>
46 <state name="value">
47 <rule pattern="-">
48 <token type="Operator"/>
49 <pop depth="1"/>
50 </rule>
51 <rule pattern="(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)">
52 <bygroups>
53 <token type="NameVariable"/>
54 <token type="Punctuation"/>
55 <token type="LiteralNumber"/>
56 </bygroups>
57 <pop depth="1"/>
58 </rule>
59 <rule pattern=".+">
60 <token type="LiteralString"/>
61 <pop depth="1"/>
62 </rule>
63 <rule>
64 <pop depth="1"/>
65 </rule>
66 </state>
67 </rules>
68</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml
new file mode 100644
index 0000000..e682500
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rexx.xml
@@ -0,0 +1,127 @@
1<lexer>
2 <config>
3 <name>Rexx</name>
4 <alias>rexx</alias>
5 <alias>arexx</alias>
6 <filename>*.rexx</filename>
7 <filename>*.rex</filename>
8 <filename>*.rx</filename>
9 <filename>*.arexx</filename>
10 <mime_type>text/x-rexx</mime_type>
11 <case_insensitive>true</case_insensitive>
12 <not_multiline>true</not_multiline>
13 </config>
14 <rules>
15 <state name="keyword">
16 <rule pattern="(address|arg|by|call|do|drop|else|end|exit|for|forever|if|interpret|iterate|leave|nop|numeric|off|on|options|parse|pull|push|queue|return|say|select|signal|to|then|trace|until|while)\b">
17 <token type="KeywordReserved"/>
18 </rule>
19 </state>
20 <state name="operator">
21 <rule pattern="(-|//|/|\(|\)|\*\*|\*|\\&lt;&lt;|\\&lt;|\\==|\\=|\\&gt;&gt;|\\&gt;|\\|\|\||\||&amp;&amp;|&amp;|%|\+|&lt;&lt;=|&lt;&lt;|&lt;=|&lt;&gt;|&lt;|==|=|&gt;&lt;|&gt;=|&gt;&gt;=|&gt;&gt;|&gt;|¬&lt;&lt;|¬&lt;|¬==|¬=|¬&gt;&gt;|¬&gt;|¬|\.|,)">
22 <token type="Operator"/>
23 </rule>
24 </state>
25 <state name="string_double">
26 <rule pattern="[^&#34;\n]+">
27 <token type="LiteralString"/>
28 </rule>
29 <rule pattern="&#34;&#34;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="&#34;">
33 <token type="LiteralString"/>
34 <pop depth="1"/>
35 </rule>
36 <rule pattern="\n">
37 <token type="Text"/>
38 <pop depth="1"/>
39 </rule>
40 </state>
41 <state name="string_single">
42 <rule pattern="[^\&#39;\n]">
43 <token type="LiteralString"/>
44 </rule>
45 <rule pattern="\&#39;\&#39;">
46 <token type="LiteralString"/>
47 </rule>
48 <rule pattern="\&#39;">
49 <token type="LiteralString"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="\n">
53 <token type="Text"/>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="comment">
58 <rule pattern="[^*]+">
59 <token type="CommentMultiline"/>
60 </rule>
61 <rule pattern="\*/">
62 <token type="CommentMultiline"/>
63 <pop depth="1"/>
64 </rule>
65 <rule pattern="\*">
66 <token type="CommentMultiline"/>
67 </rule>
68 </state>
69 <state name="root">
70 <rule pattern="\s">
71 <token type="TextWhitespace"/>
72 </rule>
73 <rule pattern="/\*">
74 <token type="CommentMultiline"/>
75 <push state="comment"/>
76 </rule>
77 <rule pattern="&#34;">
78 <token type="LiteralString"/>
79 <push state="string_double"/>
80 </rule>
81 <rule pattern="&#39;">
82 <token type="LiteralString"/>
83 <push state="string_single"/>
84 </rule>
85 <rule pattern="[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?">
86 <token type="LiteralNumber"/>
87 </rule>
88 <rule pattern="([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b">
89 <bygroups>
90 <token type="NameFunction"/>
91 <token type="TextWhitespace"/>
92 <token type="Operator"/>
93 <token type="TextWhitespace"/>
94 <token type="KeywordDeclaration"/>
95 </bygroups>
96 </rule>
97 <rule pattern="([a-z_]\w*)(\s*)(:)">
98 <bygroups>
99 <token type="NameLabel"/>
100 <token type="TextWhitespace"/>
101 <token type="Operator"/>
102 </bygroups>
103 </rule>
104 <rule>
105 <include state="function"/>
106 </rule>
107 <rule>
108 <include state="keyword"/>
109 </rule>
110 <rule>
111 <include state="operator"/>
112 </rule>
113 <rule pattern="[a-z_]\w*">
114 <token type="Text"/>
115 </rule>
116 </state>
117 <state name="function">
118 <rule pattern="(sourceline|wordlength|errortext|translate|wordindex|condition|datatype|subword|lineout|lastpos|delword|address|charout|wordpos|compare|overlay|reverse|symbol|stream|charin|center|delstr|verify|digits|abbrev|bitxor|format|random|insert|bitand|queued|length|linein|substr|copies|xrange|space|words|lines|bitor|trunc|strip|right|value|chars|trace|sign|form|fuzz|word|left|time|date|c2d|d2c|d2x|c2x|pos|b2x|arg|abs|min|x2b|x2c|x2d|max)(\s*)(\()">
119 <bygroups>
120 <token type="NameBuiltin"/>
121 <token type="TextWhitespace"/>
122 <token type="Operator"/>
123 </bygroups>
124 </rule>
125 </state>
126 </rules>
127</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml
new file mode 100644
index 0000000..b47b1ab
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/ruby.xml
@@ -0,0 +1,723 @@
1<lexer>
2 <config>
3 <name>Ruby</name>
4 <alias>rb</alias>
5 <alias>ruby</alias>
6 <alias>duby</alias>
7 <filename>*.rb</filename>
8 <filename>*.rbw</filename>
9 <filename>Rakefile</filename>
10 <filename>*.rake</filename>
11 <filename>*.gemspec</filename>
12 <filename>*.rbx</filename>
13 <filename>*.duby</filename>
14 <filename>Gemfile</filename>
15 <mime_type>text/x-ruby</mime_type>
16 <mime_type>application/x-ruby</mime_type>
17 <dot_all>true</dot_all>
18 </config>
19 <rules>
20 <state name="simple-sym">
21 <rule>
22 <include state="string-intp-escaped"/>
23 </rule>
24 <rule pattern="[^\\&#34;#]+">
25 <token type="LiteralStringSymbol"/>
26 </rule>
27 <rule pattern="[\\#]">
28 <token type="LiteralStringSymbol"/>
29 </rule>
30 <rule pattern="&#34;">
31 <token type="LiteralStringSymbol"/>
32 <pop depth="1"/>
33 </rule>
34 </state>
35 <state name="interpolated-regex">
36 <rule>
37 <include state="string-intp"/>
38 </rule>
39 <rule pattern="[\\#]">
40 <token type="LiteralStringRegex"/>
41 </rule>
42 <rule pattern="[^\\#]+">
43 <token type="LiteralStringRegex"/>
44 </rule>
45 </state>
46 <state name="strings">
47 <rule pattern="\:@{0,2}[a-zA-Z_]\w*[!?]?">
48 <token type="LiteralStringSymbol"/>
49 </rule>
50 <rule pattern="\:@{0,2}(===|\[\]=|&lt;=&gt;|\*\*|==|&gt;=|\+@|&lt;&gt;|&gt;&gt;|&lt;&lt;|-@|\[\]|~|`|\^|\||&amp;|&lt;|%|/|&gt;|\+|-|\*)">
51 <token type="LiteralStringSymbol"/>
52 </rule>
53 <rule pattern=":&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
54 <token type="LiteralStringSymbol"/>
55 </rule>
56 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
57 <token type="LiteralStringSingle"/>
58 </rule>
59 <rule pattern=":&#34;">
60 <token type="LiteralStringSymbol"/>
61 <push state="simple-sym"/>
62 </rule>
63 <rule pattern="([a-zA-Z_]\w*)(:)(?!:)">
64 <bygroups>
65 <token type="LiteralStringSymbol"/>
66 <token type="Punctuation"/>
67 </bygroups>
68 </rule>
69 <rule pattern="&#34;">
70 <token type="LiteralStringDouble"/>
71 <push state="simple-string"/>
72 </rule>
73 <rule pattern="(?&lt;!\.)`">
74 <token type="LiteralStringBacktick"/>
75 <push state="simple-backtick"/>
76 </rule>
77 <rule pattern="%[QWx]?\{">
78 <token type="LiteralStringOther"/>
79 <push state="cb-intp-string"/>
80 </rule>
81 <rule pattern="%[qsw]\{">
82 <token type="LiteralStringOther"/>
83 <push state="cb-string"/>
84 </rule>
85 <rule pattern="%r\{">
86 <token type="LiteralStringRegex"/>
87 <push state="cb-regex"/>
88 </rule>
89 <rule pattern="%[QWx]?\[">
90 <token type="LiteralStringOther"/>
91 <push state="sb-intp-string"/>
92 </rule>
93 <rule pattern="%[qsw]\[">
94 <token type="LiteralStringOther"/>
95 <push state="sb-string"/>
96 </rule>
97 <rule pattern="%r\[">
98 <token type="LiteralStringRegex"/>
99 <push state="sb-regex"/>
100 </rule>
101 <rule pattern="%[QWx]?\(">
102 <token type="LiteralStringOther"/>
103 <push state="pa-intp-string"/>
104 </rule>
105 <rule pattern="%[qsw]\(">
106 <token type="LiteralStringOther"/>
107 <push state="pa-string"/>
108 </rule>
109 <rule pattern="%r\(">
110 <token type="LiteralStringRegex"/>
111 <push state="pa-regex"/>
112 </rule>
113 <rule pattern="%[QWx]?&lt;">
114 <token type="LiteralStringOther"/>
115 <push state="ab-intp-string"/>
116 </rule>
117 <rule pattern="%[qsw]&lt;">
118 <token type="LiteralStringOther"/>
119 <push state="ab-string"/>
120 </rule>
121 <rule pattern="%r&lt;">
122 <token type="LiteralStringRegex"/>
123 <push state="ab-regex"/>
124 </rule>
125 <rule pattern="(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[mixounse]*)">
126 <token type="LiteralString"/>
127 </rule>
128 <rule pattern="%[qsw]([\W_])((?:\\\1|(?!\1).)*)\1">
129 <token type="LiteralStringOther"/>
130 </rule>
131 <rule pattern="(%[QWx]([\W_]))((?:\\\2|(?!\2).)*)(\2)">
132 <token type="LiteralString"/>
133 </rule>
134 <rule pattern="(?&lt;=[-+/*%=&lt;&gt;&amp;!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
135 <bygroups>
136 <token type="Text"/>
137 <token type="LiteralStringOther"/>
138 <token type="None"/>
139 </bygroups>
140 </rule>
141 <rule pattern="^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)">
142 <bygroups>
143 <token type="Text"/>
144 <token type="LiteralStringOther"/>
145 <token type="None"/>
146 </bygroups>
147 </rule>
148 <rule pattern="(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)">
149 <token type="LiteralString"/>
150 </rule>
151 </state>
152 <state name="simple-backtick">
153 <rule>
154 <include state="string-intp-escaped"/>
155 </rule>
156 <rule pattern="[^\\`#]+">
157 <token type="LiteralStringBacktick"/>
158 </rule>
159 <rule pattern="[\\#]">
160 <token type="LiteralStringBacktick"/>
161 </rule>
162 <rule pattern="`">
163 <token type="LiteralStringBacktick"/>
164 <pop depth="1"/>
165 </rule>
166 </state>
167 <state name="ab-regex">
168 <rule pattern="\\[\\&lt;&gt;]">
169 <token type="LiteralStringRegex"/>
170 </rule>
171 <rule pattern="&lt;">
172 <token type="LiteralStringRegex"/>
173 <push/>
174 </rule>
175 <rule pattern="&gt;[mixounse]*">
176 <token type="LiteralStringRegex"/>
177 <pop depth="1"/>
178 </rule>
179 <rule>
180 <include state="string-intp"/>
181 </rule>
182 <rule pattern="[\\#&lt;&gt;]">
183 <token type="LiteralStringRegex"/>
184 </rule>
185 <rule pattern="[^\\#&lt;&gt;]+">
186 <token type="LiteralStringRegex"/>
187 </rule>
188 </state>
189 <state name="cb-regex">
190 <rule pattern="\\[\\{}]">
191 <token type="LiteralStringRegex"/>
192 </rule>
193 <rule pattern="\{">
194 <token type="LiteralStringRegex"/>
195 <push/>
196 </rule>
197 <rule pattern="\}[mixounse]*">
198 <token type="LiteralStringRegex"/>
199 <pop depth="1"/>
200 </rule>
201 <rule>
202 <include state="string-intp"/>
203 </rule>
204 <rule pattern="[\\#{}]">
205 <token type="LiteralStringRegex"/>
206 </rule>
207 <rule pattern="[^\\#{}]+">
208 <token type="LiteralStringRegex"/>
209 </rule>
210 </state>
211 <state name="end-part">
212 <rule pattern=".+">
213 <token type="CommentPreproc"/>
214 <pop depth="1"/>
215 </rule>
216 </state>
217 <state name="string-intp">
218 <rule pattern="#\{">
219 <token type="LiteralStringInterpol"/>
220 <push state="in-intp"/>
221 </rule>
222 <rule pattern="#@@?[a-zA-Z_]\w*">
223 <token type="LiteralStringInterpol"/>
224 </rule>
225 <rule pattern="#\$[a-zA-Z_]\w*">
226 <token type="LiteralStringInterpol"/>
227 </rule>
228 </state>
229 <state name="interpolated-string">
230 <rule>
231 <include state="string-intp"/>
232 </rule>
233 <rule pattern="[\\#]">
234 <token type="LiteralStringOther"/>
235 </rule>
236 <rule pattern="[^\\#]+">
237 <token type="LiteralStringOther"/>
238 </rule>
239 </state>
240 <state name="classname">
241 <rule pattern="\(">
242 <token type="Punctuation"/>
243 <push state="defexpr"/>
244 </rule>
245 <rule pattern="&lt;&lt;">
246 <token type="Operator"/>
247 <pop depth="1"/>
248 </rule>
249 <rule pattern="[A-Z_]\w*">
250 <token type="NameClass"/>
251 <pop depth="1"/>
252 </rule>
253 <rule>
254 <pop depth="1"/>
255 </rule>
256 </state>
257 <state name="cb-intp-string">
258 <rule pattern="\\[\\{}]">
259 <token type="LiteralStringOther"/>
260 </rule>
261 <rule pattern="\{">
262 <token type="LiteralStringOther"/>
263 <push/>
264 </rule>
265 <rule pattern="\}">
266 <token type="LiteralStringOther"/>
267 <pop depth="1"/>
268 </rule>
269 <rule>
270 <include state="string-intp-escaped"/>
271 </rule>
272 <rule pattern="[\\#{}]">
273 <token type="LiteralStringOther"/>
274 </rule>
275 <rule pattern="[^\\#{}]+">
276 <token type="LiteralStringOther"/>
277 </rule>
278 </state>
279 <state name="root">
280 <rule pattern="\A#!.+?$">
281 <token type="CommentHashbang"/>
282 </rule>
283 <rule pattern="#.*?$">
284 <token type="CommentSingle"/>
285 </rule>
286 <rule pattern="=begin\s.*?\n=end.*?$">
287 <token type="CommentMultiline"/>
288 </rule>
289 <rule pattern="(defined\?|return|ensure|rescue|unless|undef|until|break|begin|elsif|super|alias|while|retry|BEGIN|raise|yield|redo|next|case|when|then|else|end|for|END|do|if|in)\b">
290 <token type="Keyword"/>
291 </rule>
292 <rule pattern="(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)">
293 <bygroups>
294 <token type="Keyword"/>
295 <token type="Text"/>
296 <token type="NameNamespace"/>
297 </bygroups>
298 </rule>
299 <rule pattern="(def)(\s+)">
300 <bygroups>
301 <token type="Keyword"/>
302 <token type="Text"/>
303 </bygroups>
304 <push state="funcname"/>
305 </rule>
306 <rule pattern="def(?=[*%&amp;^`~+-/\[&lt;&gt;=])">
307 <token type="Keyword"/>
308 <push state="funcname"/>
309 </rule>
310 <rule pattern="(class)(\s+)">
311 <bygroups>
312 <token type="Keyword"/>
313 <token type="Text"/>
314 </bygroups>
315 <push state="classname"/>
316 </rule>
317 <rule pattern="(module_function|attr_accessor|attr_reader|attr_writer|initialize|protected|include|private|extend|public|raise|false|catch|throw|attr|loop|true|new|nil)\b">
318 <token type="KeywordPseudo"/>
319 </rule>
320 <rule pattern="(not|and|or)\b">
321 <token type="OperatorWord"/>
322 </rule>
323 <rule pattern="(protected_method_defined|private_method_defined|public_method_defined|method_defined|const_defined|block_given|instance_of|respond_to|iterator|autoload|kind_of|tainted|include|frozen|equal|is_a|nil|eql)\?">
324 <token type="NameBuiltin"/>
325 </rule>
326 <rule pattern="(chomp|chop|exit|gsub|sub)!">
327 <token type="NameBuiltin"/>
328 </rule>
329 <rule pattern="(?&lt;!\.)(protected_instance_methods|private_instance_methods|public_instance_methods|instance_variable_set|instance_variable_get|private_class_method|public_class_method|instance_variables|protected_methods|singleton_methods|included_modules|instance_methods|global_variables|private_methods|local_variables|instance_method|class_variables|public_methods|const_defined\?|set_trace_func|method_missing|const_missing|instance_eval|module_eval|untrace_var|class_eval|trace_var|const_get|readlines|ancestors|constants|const_set|object_id|readline|autoload|__send__|untaint|methods|display|Integer|sprintf|inspect|require|syscall|at_exit|binding|extend|printf|lambda|__id__|String|callcc|method|select|format|system|freeze|caller|raise|Float|print|throw|taint|clone|srand|Array|abort|split|catch|chomp|sleep|open|puts|putc|fork|fail|trap|exit|scan|getc|self|send|eval|gets|exec|gsub|proc|load|loop|chop|warn|hash|test|name|to_a|rand|to_s|sub|dup|id|p)\b">
330 <token type="NameBuiltin"/>
331 </rule>
332 <rule pattern="__(FILE|LINE)__\b">
333 <token type="NameBuiltinPseudo"/>
334 </rule>
335 <rule pattern="(?&lt;!\w)(&lt;&lt;-?)([&#34;`\&#39;]?)([a-zA-Z_]\w*)(\2)(.*?\n)">
336 <token type="LiteralString"/>
337 </rule>
338 <rule pattern="(&lt;&lt;-?)(&#34;|\&#39;)()(\2)(.*?\n)">
339 <token type="LiteralString"/>
340 </rule>
341 <rule pattern="__END__">
342 <token type="CommentPreproc"/>
343 <push state="end-part"/>
344 </rule>
345 <rule pattern="(?:^|(?&lt;=[=&lt;&gt;~!:])|(?&lt;=(?:\s|;)when\s)|(?&lt;=(?:\s|;)or\s)|(?&lt;=(?:\s|;)and\s)|(?&lt;=\.index\s)|(?&lt;=\.scan\s)|(?&lt;=\.sub\s)|(?&lt;=\.sub!\s)|(?&lt;=\.gsub\s)|(?&lt;=\.gsub!\s)|(?&lt;=\.match\s)|(?&lt;=(?:\s|;)if\s)|(?&lt;=(?:\s|;)elsif\s)|(?&lt;=^when\s)|(?&lt;=^index\s)|(?&lt;=^scan\s)|(?&lt;=^sub\s)|(?&lt;=^gsub\s)|(?&lt;=^sub!\s)|(?&lt;=^gsub!\s)|(?&lt;=^match\s)|(?&lt;=^if\s)|(?&lt;=^elsif\s))(\s*)(/)">
346 <bygroups>
347 <token type="Text"/>
348 <token type="LiteralStringRegex"/>
349 </bygroups>
350 <push state="multiline-regex"/>
351 </rule>
352 <rule pattern="(?&lt;=\(|,|\[)/">
353 <token type="LiteralStringRegex"/>
354 <push state="multiline-regex"/>
355 </rule>
356 <rule pattern="(\s+)(/)(?![\s=])">
357 <bygroups>
358 <token type="Text"/>
359 <token type="LiteralStringRegex"/>
360 </bygroups>
361 <push state="multiline-regex"/>
362 </rule>
363 <rule pattern="(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?">
364 <bygroups>
365 <token type="LiteralNumberOct"/>
366 <token type="Text"/>
367 <token type="Operator"/>
368 </bygroups>
369 </rule>
370 <rule pattern="(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?">
371 <bygroups>
372 <token type="LiteralNumberHex"/>
373 <token type="Text"/>
374 <token type="Operator"/>
375 </bygroups>
376 </rule>
377 <rule pattern="(0b[01]+(?:_[01]+)*)(\s*)([/?])?">
378 <bygroups>
379 <token type="LiteralNumberBin"/>
380 <token type="Text"/>
381 <token type="Operator"/>
382 </bygroups>
383 </rule>
384 <rule pattern="([\d]+(?:[_e]\d+)*)(\s*)([/?])?">
385 <bygroups>
386 <token type="LiteralNumberInteger"/>
387 <token type="Text"/>
388 <token type="Operator"/>
389 </bygroups>
390 </rule>
391 <rule pattern="@@[a-zA-Z_]\w*">
392 <token type="NameVariableClass"/>
393 </rule>
394 <rule pattern="@[a-zA-Z_]\w*">
395 <token type="NameVariableInstance"/>
396 </rule>
397 <rule pattern="\$\w+">
398 <token type="NameVariableGlobal"/>
399 </rule>
400 <rule pattern="\$[!@&amp;`\&#39;+~=/\\,;.&lt;&gt;_*$?:&#34;^-]">
401 <token type="NameVariableGlobal"/>
402 </rule>
403 <rule pattern="\$-[0adFiIlpvw]">
404 <token type="NameVariableGlobal"/>
405 </rule>
406 <rule pattern="::">
407 <token type="Operator"/>
408 </rule>
409 <rule>
410 <include state="strings"/>
411 </rule>
412 <rule pattern="\?(\\[MC]-)*(\\([\\abefnrstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)">
413 <token type="LiteralStringChar"/>
414 </rule>
415 <rule pattern="[A-Z]\w+">
416 <token type="NameConstant"/>
417 </rule>
418 <rule pattern="(\.|::)(===|\[\]=|&lt;=&gt;|\*\*|==|&gt;=|\+@|&lt;&gt;|&gt;&gt;|&lt;&lt;|-@|\[\]|~|`|\^|\||&amp;|&lt;|%|/|&gt;|\+|-|\*)">
419 <bygroups>
420 <token type="Operator"/>
421 <token type="NameOperator"/>
422 </bygroups>
423 </rule>
424 <rule pattern="(\.|::)([a-zA-Z_]\w*[!?]?|[*%&amp;^`~+\-/\[&lt;&gt;=])">
425 <bygroups>
426 <token type="Operator"/>
427 <token type="Name"/>
428 </bygroups>
429 </rule>
430 <rule pattern="[a-zA-Z_]\w*[!?]?">
431 <token type="Name"/>
432 </rule>
433 <rule pattern="(\[|\]|\*\*|&lt;&lt;?|&gt;&gt;?|&gt;=|&lt;=|&lt;=&gt;|=~|={3}|!~|&amp;&amp;?|\|\||\.{1,3})">
434 <token type="Operator"/>
435 </rule>
436 <rule pattern="[-+/*%=&lt;&gt;&amp;!^|~]=?">
437 <token type="Operator"/>
438 </rule>
439 <rule pattern="[(){};,/?:\\]">
440 <token type="Punctuation"/>
441 </rule>
442 <rule pattern="\s+">
443 <token type="Text"/>
444 </rule>
445 </state>
446 <state name="defexpr">
447 <rule pattern="(\))(\.|::)?">
448 <bygroups>
449 <token type="Punctuation"/>
450 <token type="Operator"/>
451 </bygroups>
452 <pop depth="1"/>
453 </rule>
454 <rule pattern="\(">
455 <token type="Operator"/>
456 <push/>
457 </rule>
458 <rule>
459 <include state="root"/>
460 </rule>
461 </state>
462 <state name="in-intp">
463 <rule pattern="\{">
464 <token type="LiteralStringInterpol"/>
465 <push/>
466 </rule>
467 <rule pattern="\}">
468 <token type="LiteralStringInterpol"/>
469 <pop depth="1"/>
470 </rule>
471 <rule>
472 <include state="root"/>
473 </rule>
474 </state>
475 <state name="multiline-regex">
476 <rule>
477 <include state="string-intp"/>
478 </rule>
479 <rule pattern="\\\\">
480 <token type="LiteralStringRegex"/>
481 </rule>
482 <rule pattern="\\/">
483 <token type="LiteralStringRegex"/>
484 </rule>
485 <rule pattern="[\\#]">
486 <token type="LiteralStringRegex"/>
487 </rule>
488 <rule pattern="[^\\/#]+">
489 <token type="LiteralStringRegex"/>
490 </rule>
491 <rule pattern="/[mixounse]*">
492 <token type="LiteralStringRegex"/>
493 <pop depth="1"/>
494 </rule>
495 </state>
496 <state name="cb-string">
497 <rule pattern="\\[\\{}]">
498 <token type="LiteralStringOther"/>
499 </rule>
500 <rule pattern="\{">
501 <token type="LiteralStringOther"/>
502 <push/>
503 </rule>
504 <rule pattern="\}">
505 <token type="LiteralStringOther"/>
506 <pop depth="1"/>
507 </rule>
508 <rule pattern="[\\#{}]">
509 <token type="LiteralStringOther"/>
510 </rule>
511 <rule pattern="[^\\#{}]+">
512 <token type="LiteralStringOther"/>
513 </rule>
514 </state>
515 <state name="funcname">
516 <rule pattern="\(">
517 <token type="Punctuation"/>
518 <push state="defexpr"/>
519 </rule>
520 <rule pattern="(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&amp;|^`~]|\[\]=?|&lt;&lt;|&gt;&gt;|&lt;=?&gt;|&gt;=?|===?)">
521 <bygroups>
522 <token type="NameClass"/>
523 <token type="Operator"/>
524 <token type="NameFunction"/>
525 </bygroups>
526 <pop depth="1"/>
527 </rule>
528 <rule>
529 <pop depth="1"/>
530 </rule>
531 </state>
532 <state name="sb-intp-string">
533 <rule pattern="\\[\\\[\]]">
534 <token type="LiteralStringOther"/>
535 </rule>
536 <rule pattern="\[">
537 <token type="LiteralStringOther"/>
538 <push/>
539 </rule>
540 <rule pattern="\]">
541 <token type="LiteralStringOther"/>
542 <pop depth="1"/>
543 </rule>
544 <rule>
545 <include state="string-intp-escaped"/>
546 </rule>
547 <rule pattern="[\\#\[\]]">
548 <token type="LiteralStringOther"/>
549 </rule>
550 <rule pattern="[^\\#\[\]]+">
551 <token type="LiteralStringOther"/>
552 </rule>
553 </state>
554 <state name="pa-string">
555 <rule pattern="\\[\\()]">
556 <token type="LiteralStringOther"/>
557 </rule>
558 <rule pattern="\(">
559 <token type="LiteralStringOther"/>
560 <push/>
561 </rule>
562 <rule pattern="\)">
563 <token type="LiteralStringOther"/>
564 <pop depth="1"/>
565 </rule>
566 <rule pattern="[\\#()]">
567 <token type="LiteralStringOther"/>
568 </rule>
569 <rule pattern="[^\\#()]+">
570 <token type="LiteralStringOther"/>
571 </rule>
572 </state>
573 <state name="string-intp-escaped">
574 <rule>
575 <include state="string-intp"/>
576 </rule>
577 <rule pattern="\\([\\abefnrstv#&#34;\&#39;]|x[a-fA-F0-9]{1,2}|[0-7]{1,3})">
578 <token type="LiteralStringEscape"/>
579 </rule>
580 </state>
581 <state name="simple-string">
582 <rule>
583 <include state="string-intp-escaped"/>
584 </rule>
585 <rule pattern="[^\\&#34;#]+">
586 <token type="LiteralStringDouble"/>
587 </rule>
588 <rule pattern="[\\#]">
589 <token type="LiteralStringDouble"/>
590 </rule>
591 <rule pattern="&#34;">
592 <token type="LiteralStringDouble"/>
593 <pop depth="1"/>
594 </rule>
595 </state>
596 <state name="pa-intp-string">
597 <rule pattern="\\[\\()]">
598 <token type="LiteralStringOther"/>
599 </rule>
600 <rule pattern="\(">
601 <token type="LiteralStringOther"/>
602 <push/>
603 </rule>
604 <rule pattern="\)">
605 <token type="LiteralStringOther"/>
606 <pop depth="1"/>
607 </rule>
608 <rule>
609 <include state="string-intp-escaped"/>
610 </rule>
611 <rule pattern="[\\#()]">
612 <token type="LiteralStringOther"/>
613 </rule>
614 <rule pattern="[^\\#()]+">
615 <token type="LiteralStringOther"/>
616 </rule>
617 </state>
618 <state name="ab-string">
619 <rule pattern="\\[\\&lt;&gt;]">
620 <token type="LiteralStringOther"/>
621 </rule>
622 <rule pattern="&lt;">
623 <token type="LiteralStringOther"/>
624 <push/>
625 </rule>
626 <rule pattern="&gt;">
627 <token type="LiteralStringOther"/>
628 <pop depth="1"/>
629 </rule>
630 <rule pattern="[\\#&lt;&gt;]">
631 <token type="LiteralStringOther"/>
632 </rule>
633 <rule pattern="[^\\#&lt;&gt;]+">
634 <token type="LiteralStringOther"/>
635 </rule>
636 </state>
637 <state name="sb-regex">
638 <rule pattern="\\[\\\[\]]">
639 <token type="LiteralStringRegex"/>
640 </rule>
641 <rule pattern="\[">
642 <token type="LiteralStringRegex"/>
643 <push/>
644 </rule>
645 <rule pattern="\][mixounse]*">
646 <token type="LiteralStringRegex"/>
647 <pop depth="1"/>
648 </rule>
649 <rule>
650 <include state="string-intp"/>
651 </rule>
652 <rule pattern="[\\#\[\]]">
653 <token type="LiteralStringRegex"/>
654 </rule>
655 <rule pattern="[^\\#\[\]]+">
656 <token type="LiteralStringRegex"/>
657 </rule>
658 </state>
659 <state name="pa-regex">
660 <rule pattern="\\[\\()]">
661 <token type="LiteralStringRegex"/>
662 </rule>
663 <rule pattern="\(">
664 <token type="LiteralStringRegex"/>
665 <push/>
666 </rule>
667 <rule pattern="\)[mixounse]*">
668 <token type="LiteralStringRegex"/>
669 <pop depth="1"/>
670 </rule>
671 <rule>
672 <include state="string-intp"/>
673 </rule>
674 <rule pattern="[\\#()]">
675 <token type="LiteralStringRegex"/>
676 </rule>
677 <rule pattern="[^\\#()]+">
678 <token type="LiteralStringRegex"/>
679 </rule>
680 </state>
681 <state name="sb-string">
682 <rule pattern="\\[\\\[\]]">
683 <token type="LiteralStringOther"/>
684 </rule>
685 <rule pattern="\[">
686 <token type="LiteralStringOther"/>
687 <push/>
688 </rule>
689 <rule pattern="\]">
690 <token type="LiteralStringOther"/>
691 <pop depth="1"/>
692 </rule>
693 <rule pattern="[\\#\[\]]">
694 <token type="LiteralStringOther"/>
695 </rule>
696 <rule pattern="[^\\#\[\]]+">
697 <token type="LiteralStringOther"/>
698 </rule>
699 </state>
700 <state name="ab-intp-string">
701 <rule pattern="\\[\\&lt;&gt;]">
702 <token type="LiteralStringOther"/>
703 </rule>
704 <rule pattern="&lt;">
705 <token type="LiteralStringOther"/>
706 <push/>
707 </rule>
708 <rule pattern="&gt;">
709 <token type="LiteralStringOther"/>
710 <pop depth="1"/>
711 </rule>
712 <rule>
713 <include state="string-intp-escaped"/>
714 </rule>
715 <rule pattern="[\\#&lt;&gt;]">
716 <token type="LiteralStringOther"/>
717 </rule>
718 <rule pattern="[^\\#&lt;&gt;]+">
719 <token type="LiteralStringOther"/>
720 </rule>
721 </state>
722 </rules>
723</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml
new file mode 100644
index 0000000..f41049c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/rust.xml
@@ -0,0 +1,329 @@
1<lexer>
2 <config>
3 <name>Rust</name>
4 <alias>rust</alias>
5 <alias>rs</alias>
6 <filename>*.rs</filename>
7 <filename>*.rs.in</filename>
8 <mime_type>text/rust</mime_type>
9 <mime_type>text/x-rust</mime_type>
10 <ensure_nl>true</ensure_nl>
11 </config>
12 <rules>
13 <state name="modname">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="[a-zA-Z_]\w*">
18 <token type="NameNamespace"/>
19 <pop depth="1"/>
20 </rule>
21 <rule>
22 <pop depth="1"/>
23 </rule>
24 </state>
25 <state name="lifetime">
26 <rule pattern="(static|_)">
27 <token type="NameBuiltin"/>
28 </rule>
29 <rule pattern="[a-zA-Z_]+\w*">
30 <token type="NameAttribute"/>
31 </rule>
32 <rule>
33 <pop depth="1"/>
34 </rule>
35 </state>
36 <state name="number_lit">
37 <rule pattern="[ui](8|16|32|64|size)">
38 <token type="Keyword"/>
39 <pop depth="1"/>
40 </rule>
41 <rule pattern="f(32|64)">
42 <token type="Keyword"/>
43 <pop depth="1"/>
44 </rule>
45 <rule>
46 <pop depth="1"/>
47 </rule>
48 </state>
49 <state name="attribute_common">
50 <rule pattern="&#34;">
51 <token type="LiteralString"/>
52 <push state="string"/>
53 </rule>
54 <rule pattern="\[">
55 <token type="CommentPreproc"/>
56 <push state="attribute["/>
57 </rule>
58 </state>
59 <state name="bytestring">
60 <rule pattern="\\x[89a-fA-F][0-9a-fA-F]">
61 <token type="LiteralStringEscape"/>
62 </rule>
63 <rule>
64 <include state="string"/>
65 </rule>
66 </state>
67 <state name="comment">
68 <rule pattern="[^*/]+">
69 <token type="CommentMultiline"/>
70 </rule>
71 <rule pattern="/\*">
72 <token type="CommentMultiline"/>
73 <push/>
74 </rule>
75 <rule pattern="\*/">
76 <token type="CommentMultiline"/>
77 <pop depth="1"/>
78 </rule>
79 <rule pattern="[*/]">
80 <token type="CommentMultiline"/>
81 </rule>
82 </state>
83 <state name="doccomment">
84 <rule pattern="[^*/]+">
85 <token type="LiteralStringDoc"/>
86 </rule>
87 <rule pattern="/\*">
88 <token type="LiteralStringDoc"/>
89 <push/>
90 </rule>
91 <rule pattern="\*/">
92 <token type="LiteralStringDoc"/>
93 <pop depth="1"/>
94 </rule>
95 <rule pattern="[*/]">
96 <token type="LiteralStringDoc"/>
97 </rule>
98 </state>
99 <state name="funcname">
100 <rule pattern="\s+">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="[a-zA-Z_]\w*">
104 <token type="NameFunction"/>
105 <pop depth="1"/>
106 </rule>
107 <rule>
108 <pop depth="1"/>
109 </rule>
110 </state>
111 <state name="string">
112 <rule pattern="&#34;">
113 <token type="LiteralString"/>
114 <pop depth="1"/>
115 </rule>
116 <rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}">
117 <token type="LiteralStringEscape"/>
118 </rule>
119 <rule pattern="[^\\&#34;]+">
120 <token type="LiteralString"/>
121 </rule>
122 <rule pattern="\\">
123 <token type="LiteralString"/>
124 </rule>
125 </state>
126 <state name="root">
127 <rule pattern="#![^[\r\n].*$">
128 <token type="CommentPreproc"/>
129 </rule>
130 <rule>
131 <push state="base"/>
132 </rule>
133 </state>
134 <state name="attribute[">
135 <rule>
136 <include state="attribute_common"/>
137 </rule>
138 <rule pattern="\]">
139 <token type="CommentPreproc"/>
140 <pop depth="1"/>
141 </rule>
142 <rule pattern="[^&#34;\]\[]+">
143 <token type="CommentPreproc"/>
144 </rule>
145 </state>
146 <state name="base">
147 <rule pattern="\n">
148 <token type="TextWhitespace"/>
149 </rule>
150 <rule pattern="\s+">
151 <token type="TextWhitespace"/>
152 </rule>
153 <rule pattern="//!.*?\n">
154 <token type="LiteralStringDoc"/>
155 </rule>
156 <rule pattern="///(\n|[^/].*?\n)">
157 <token type="LiteralStringDoc"/>
158 </rule>
159 <rule pattern="//(.*?)\n">
160 <token type="CommentSingle"/>
161 </rule>
162 <rule pattern="/\*\*(\n|[^/*])">
163 <token type="LiteralStringDoc"/>
164 <push state="doccomment"/>
165 </rule>
166 <rule pattern="/\*!">
167 <token type="LiteralStringDoc"/>
168 <push state="doccomment"/>
169 </rule>
170 <rule pattern="/\*">
171 <token type="CommentMultiline"/>
172 <push state="comment"/>
173 </rule>
174 <rule pattern="r#*&#34;(?:\\.|[^\\;])*&#34;#*">
175 <token type="LiteralString"/>
176 </rule>
177 <rule pattern="&#34;(?:\\.|[^\\&#34;])*&#34;">
178 <token type="LiteralString"/>
179 </rule>
180 <rule pattern="\$([a-zA-Z_]\w*|\(,?|\),?|,?)">
181 <token type="CommentPreproc"/>
182 </rule>
183 <rule pattern="(unsafe|static|extern|return|const|crate|where|while|await|trait|super|async|match|impl|else|move|loop|pub|ref|mut|for|dyn|use|box|in|if|as)\b">
184 <token type="Keyword"/>
185 </rule>
186 <rule pattern="(abstract|override|unsized|virtual|become|typeof|final|macro|yield|priv|try|do)\b">
187 <token type="KeywordReserved"/>
188 </rule>
189 <rule pattern="(true|false)\b">
190 <token type="KeywordConstant"/>
191 </rule>
192 <rule pattern="self\b">
193 <token type="NameBuiltinPseudo"/>
194 </rule>
195 <rule pattern="mod\b">
196 <token type="Keyword"/>
197 <push state="modname"/>
198 </rule>
199 <rule pattern="let\b">
200 <token type="KeywordDeclaration"/>
201 </rule>
202 <rule pattern="fn\b">
203 <token type="Keyword"/>
204 <push state="funcname"/>
205 </rule>
206 <rule pattern="(struct|enum|type|union)\b">
207 <token type="Keyword"/>
208 <push state="typename"/>
209 </rule>
210 <rule pattern="(default)(\s+)(type|fn)\b">
211 <bygroups>
212 <token type="Keyword"/>
213 <token type="Text"/>
214 <token type="Keyword"/>
215 </bygroups>
216 </rule>
217 <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b">
218 <token type="KeywordType"/>
219 </rule>
220 <rule pattern="[sS]elf\b">
221 <token type="NameBuiltinPseudo"/>
222 </rule>
223 <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
224 <token type="NameBuiltin"/>
225 </rule>
226 <rule pattern="(is_powerpc64_feature_detected|is_aarch64_feature_detected|is_powerpc_feature_detected|is_mips64_feature_detected|is_mips_feature_detected|is_x86_feature_detected|is_arm_feature_detected|debug_assert_ne|debug_assert_eq|format_args_nl|concat_idents|unimplemented|include_bytes|compile_error|debug_assert|thread_local|trace_macros|macro_rules|format_args|module_path|unreachable|include_str|option_env|global_asm|log_syntax|stringify|assert_ne|assert_eq|llvm_asm|eprintln|include|matches|println|writeln|format|column|assert|concat|eprint|write|panic|print|file|todo|line|env|dbg|vec|cfg|asm)!">
227 <token type="NameFunctionMagic"/>
228 </rule>
229 <rule pattern="::\b">
230 <token type="Text"/>
231 </rule>
232 <rule pattern="(?::|-&gt;)">
233 <token type="Text"/>
234 <push state="typename"/>
235 </rule>
236 <rule pattern="(break|continue)(\b\s*)(\&#39;[A-Za-z_]\w*)?">
237 <bygroups>
238 <token type="Keyword"/>
239 <token type="TextWhitespace"/>
240 <token type="NameLabel"/>
241 </bygroups>
242 </rule>
243 <rule pattern="&#39;(\\[&#39;&#34;\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
244 <token type="LiteralStringChar"/>
245 </rule>
246 <rule pattern="b&#39;(\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)&#39;">
247 <token type="LiteralStringChar"/>
248 </rule>
249 <rule pattern="0b[01_]+">
250 <token type="LiteralNumberBin"/>
251 <push state="number_lit"/>
252 </rule>
253 <rule pattern="0o[0-7_]+">
254 <token type="LiteralNumberOct"/>
255 <push state="number_lit"/>
256 </rule>
257 <rule pattern="0[xX][0-9a-fA-F_]+">
258 <token type="LiteralNumberHex"/>
259 <push state="number_lit"/>
260 </rule>
261 <rule pattern="[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)">
262 <token type="LiteralNumberFloat"/>
263 <push state="number_lit"/>
264 </rule>
265 <rule pattern="[0-9][0-9_]*">
266 <token type="LiteralNumberInteger"/>
267 <push state="number_lit"/>
268 </rule>
269 <rule pattern="b&#34;">
270 <token type="LiteralString"/>
271 <push state="bytestring"/>
272 </rule>
273 <rule pattern="(?s)b?r(#*)&#34;.*?&#34;\1">
274 <token type="LiteralString"/>
275 </rule>
276 <rule pattern="&#39;">
277 <token type="Operator"/>
278 <push state="lifetime"/>
279 </rule>
280 <rule pattern="\.\.=?">
281 <token type="Operator"/>
282 </rule>
283 <rule pattern="[{}()\[\],.;]">
284 <token type="Punctuation"/>
285 </rule>
286 <rule pattern="[+\-*/%&amp;|&lt;&gt;^!~@=:?]">
287 <token type="Operator"/>
288 </rule>
289 <rule pattern="(r#)?[a-zA-Z_]\w*">
290 <token type="Name"/>
291 </rule>
292 <rule pattern="r#[a-zA-Z_]\w*">
293 <token type="Name"/>
294 </rule>
295 <rule pattern="#!?\[">
296 <token type="CommentPreproc"/>
297 <push state="attribute["/>
298 </rule>
299 <rule pattern="#">
300 <token type="Text"/>
301 </rule>
302 </state>
303 <state name="typename">
304 <rule pattern="\s+">
305 <token type="Text"/>
306 </rule>
307 <rule pattern="&amp;">
308 <token type="KeywordPseudo"/>
309 </rule>
310 <rule pattern="&#39;">
311 <token type="Operator"/>
312 <push state="lifetime"/>
313 </rule>
314 <rule pattern="(DoubleEndedIterator|ExactSizeIterator|IntoIterator|PartialOrd|PartialEq|ToString|Iterator|ToOwned|Default|Result|String|FnOnce|Extend|Option|FnMut|Unpin|Sized|AsRef|AsMut|Clone|None|From|Into|Sync|drop|Send|Drop|Copy|Some|Ord|Err|Box|Vec|Eq|Ok|Fn)\b">
315 <token type="NameBuiltin"/>
316 </rule>
317 <rule pattern="(isize|usize|bool|char|u128|i128|i64|i32|i16|str|u64|u32|f32|f64|u16|i8|u8)\b">
318 <token type="KeywordType"/>
319 </rule>
320 <rule pattern="[a-zA-Z_]\w*">
321 <token type="NameClass"/>
322 <pop depth="1"/>
323 </rule>
324 <rule>
325 <pop depth="1"/>
326 </rule>
327 </state>
328 </rules>
329</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml
new file mode 100644
index 0000000..af1107b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sas.xml
@@ -0,0 +1,191 @@
1<lexer>
2 <config>
3 <name>SAS</name>
4 <alias>sas</alias>
5 <filename>*.SAS</filename>
6 <filename>*.sas</filename>
7 <mime_type>text/x-sas</mime_type>
8 <mime_type>text/sas</mime_type>
9 <mime_type>application/x-sas</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="validvar">
14 <rule pattern="[a-z_]\w{0,31}\.?">
15 <token type="NameVariable"/>
16 <pop depth="1"/>
17 </rule>
18 </state>
19 <state name="cards-datalines">
20 <rule pattern="^\s*(datalines|cards)\s*;\s*$">
21 <token type="Keyword"/>
22 <push state="data"/>
23 </rule>
24 </state>
25 <state name="proc-data">
26 <rule pattern="(^|;)\s*(proc \w+|data|run|quit)[\s;]">
27 <token type="KeywordReserved"/>
28 </rule>
29 </state>
30 <state name="string_dquote">
31 <rule pattern="&#34;">
32 <token type="LiteralString"/>
33 <pop depth="1"/>
34 </rule>
35 <rule pattern="\\\\|\\&#34;|\\\n">
36 <token type="LiteralStringEscape"/>
37 </rule>
38 <rule pattern="&amp;">
39 <token type="NameVariable"/>
40 <push state="validvar"/>
41 </rule>
42 <rule pattern="[^$&amp;&#34;\\]+">
43 <token type="LiteralString"/>
44 </rule>
45 <rule pattern="[$&#34;\\]">
46 <token type="LiteralString"/>
47 </rule>
48 </state>
49 <state name="general">
50 <rule>
51 <include state="keywords"/>
52 </rule>
53 <rule>
54 <include state="vars-strings"/>
55 </rule>
56 <rule>
57 <include state="special"/>
58 </rule>
59 <rule>
60 <include state="numbers"/>
61 </rule>
62 </state>
63 <state name="vars-strings">
64 <rule pattern="&amp;[a-z_]\w{0,31}\.?">
65 <token type="NameVariable"/>
66 </rule>
67 <rule pattern="%[a-z_]\w{0,31}">
68 <token type="NameFunction"/>
69 </rule>
70 <rule pattern="\&#39;">
71 <token type="LiteralString"/>
72 <push state="string_squote"/>
73 </rule>
74 <rule pattern="&#34;">
75 <token type="LiteralString"/>
76 <push state="string_dquote"/>
77 </rule>
78 </state>
79 <state name="root">
80 <rule>
81 <include state="comments"/>
82 </rule>
83 <rule>
84 <include state="proc-data"/>
85 </rule>
86 <rule>
87 <include state="cards-datalines"/>
88 </rule>
89 <rule>
90 <include state="logs"/>
91 </rule>
92 <rule>
93 <include state="general"/>
94 </rule>
95 <rule pattern=".">
96 <token type="Text"/>
97 </rule>
98 <rule pattern="\\\n">
99 <token type="Text"/>
100 </rule>
101 <rule pattern="\n">
102 <token type="Text"/>
103 </rule>
104 </state>
105 <state name="data">
106 <rule pattern="(.|\n)*^\s*;\s*$">
107 <token type="Other"/>
108 <pop depth="1"/>
109 </rule>
110 </state>
111 <state name="logs">
112 <rule pattern="\n?^\s*%?put ">
113 <token type="Keyword"/>
114 <push state="log-messages"/>
115 </rule>
116 </state>
117 <state name="keywords">
118 <rule pattern="\b(datalines4|datalines|delimiter|startsas|redirect|lostcard|continue|informat|filename|footnote|catname|options|libname|systask|display|waitsas|missing|replace|delete|window|endsas|update|format|attrib|length|infile|select|return|retain|rename|remove|output|cards4|modify|leave|title|merge|delim|input|cards|abort|where|label|array|error|call|page|stop|keep|file|drop|link|skip|list|goto|put|out|set|by|dm|in|x)\b">
119 <token type="Keyword"/>
120 </rule>
121 <rule pattern="\b(references|distinct|describe|validate|restrict|cascade|msgtype|message|primary|foreign|delete|update|create|unique|having|modify|insert|select|group|check|table|alter|order|reset|index|where|into|from|view|null|like|drop|add|not|key|and|set|on|in|or|as)\b">
122 <token type="Keyword"/>
123 </rule>
124 <rule pattern="\b(while|until|then|else|end|if|do)\b">
125 <token type="Keyword"/>
126 </rule>
127 <rule pattern="%(sysevalf|nrbquote|qsysfunc|qlowcase|compstor|nrquote|display|qupcase|datatyp|qcmpres|unquote|syscall|sysfunc|sysrput|sysprod|syslput|sysexec|lowcase|qsubstr|sysget|length|keydef|global|superq|substr|verify|bquote|cmpres|upcase|window|label|qleft|while|qtrim|quote|nrstr|until|sysrc|input|macro|local|qscan|index|else|scan|mend|eval|trim|then|goto|left|put|let|end|str|do|to|if)\b">
128 <token type="NameBuiltin"/>
129 </rule>
130 <rule pattern="\b(vinformatnx|vinformatwx|vinformatdx|vinformatw|vinformatd|vinformatx|vinformatn|vinformat|translate|vinarrayx|vformatwx|vformatnx|vformatdx|getoption|fileexist|fetchobs|vlengthx|filename|fipstate|kurtosis|vinarray|vformatx|pathname|foptname|compound|compress|vformatw|hosthelp|vformatn|zipnamel|vformatd|probbeta|daccdbsl|zipstate|trigamma|probbnml|probhypr|probnegb|probnorm|datepart|datetime|varlabel|varinfmt|dropnote|skewness|doptname|timepart|fipnamel|dequote|tranwrd|sysprod|digamma|stnamel|soundex|depdbsl|reverse|daccsyd|doptnum|resolve|uniform|datejul|varname|varrayx|probgam|probchi|fappend|dacctab|vformat|poisson|collate|brshift|ordinal|fdelete|blshift|betainv|fileref|lowcase|libname|fipname|vlabelx|vlength|weekday|juldate|jbessel|ibessel|zipfips|foptnum|zipname|getvarn|getvarc|frewind|vartype|depsyd|stderr|stfips|fwrite|gaminv|second|substr|vtypex|symget|hbound|vnamex|fpoint|saving|fnonct|rewind|indexc|indexw|repeat|inputc|inputn|ranuni|stname|rantbl|ranpoi|rannor|sysget|rangam|ranexp|vlabel|lbound|cexist|length|lgamma|rancau|libref|cnonct|ranbin|compbl|logpdf|logpmf|logsdf|sysmsg|curobs|daccdb|verify|daccsl|minute|system|tnonct|dsname|varray|varnum|probit|spedis|normal|varlen|dclose|varfmt|fexist|deptab|upcase|rantri|fclose|nmiss|point|trimn|depsl|trunc|peekc|depdb|probf|exist|fetch|netpv|today|mopen|probt|month|dairy|sysrc|finfo|quote|log10|close|floor|dinfo|range|fnote|attrn|intrr|intnx|intck|attrc|input|dread|dopen|index|right|round|vname|vtype|fread|gamma|arsin|arcos|fopen|frlen|fget|sinh|sqrt|addr|airy|sign|fsep|year|fuzz|dnum|scan|rank|fput|fpos|putn|putc|hour|tanh|atan|dhms|tinv|band|bnot|erfc|fcol|poke|trim|byte|ceil|peek|left|cinv|finv|open|log2|mean|note|date|cosh|mort|time|bxor|bor|mdy|std|max|css|sin|cos|npv|log|var|uss|pdf|pmf|cdf|abs|hms|day|erf|put|lag|irr|int|sum|tan|min|dif|qtr|sdf|dim|yyq|exp|mod|cv|n)\(">
131 <token type="NameBuiltin"/>
132 </rule>
133 </state>
134 <state name="numbers">
135 <rule pattern="\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\b">
136 <token type="LiteralNumber"/>
137 </rule>
138 </state>
139 <state name="special">
140 <rule pattern="(null|missing|_all_|_automatic_|_character_|_n_|_infile_|_name_|_null_|_numeric_|_user_|_webout_)">
141 <token type="KeywordConstant"/>
142 </rule>
143 </state>
144 <state name="log-messages">
145 <rule pattern="NOTE(:|-).*">
146 <token type="Generic"/>
147 <pop depth="1"/>
148 </rule>
149 <rule pattern="WARNING(:|-).*">
150 <token type="GenericEmph"/>
151 <pop depth="1"/>
152 </rule>
153 <rule pattern="ERROR(:|-).*">
154 <token type="GenericError"/>
155 <pop depth="1"/>
156 </rule>
157 <rule>
158 <include state="general"/>
159 </rule>
160 </state>
161 <state name="comments">
162 <rule pattern="^\s*\*.*?;">
163 <token type="Comment"/>
164 </rule>
165 <rule pattern="/\*.*?\*/">
166 <token type="Comment"/>
167 </rule>
168 <rule pattern="^\s*\*(.|\n)*?;">
169 <token type="CommentMultiline"/>
170 </rule>
171 <rule pattern="/[*](.|\n)*?[*]/">
172 <token type="CommentMultiline"/>
173 </rule>
174 </state>
175 <state name="string_squote">
176 <rule pattern="&#39;">
177 <token type="LiteralString"/>
178 <pop depth="1"/>
179 </rule>
180 <rule pattern="\\\\|\\&#34;|\\\n">
181 <token type="LiteralStringEscape"/>
182 </rule>
183 <rule pattern="[^$\&#39;\\]+">
184 <token type="LiteralString"/>
185 </rule>
186 <rule pattern="[$\&#39;\\]">
187 <token type="LiteralString"/>
188 </rule>
189 </state>
190 </rules>
191</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml
new file mode 100644
index 0000000..f801594
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml
@@ -0,0 +1,362 @@
1<lexer>
2 <config>
3 <name>Sass</name>
4 <alias>sass</alias>
5 <filename>*.sass</filename>
6 <mime_type>text/x-sass</mime_type>
7 <case_insensitive>true</case_insensitive>
8 </config>
9 <rules>
10 <state name="import">
11 <rule pattern="[ \t]+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="\S+">
15 <token type="LiteralString"/>
16 </rule>
17 <rule pattern="\n">
18 <token type="Text"/>
19 <push state="root"/>
20 </rule>
21 </state>
22 <state name="string-single">
23 <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
24 <token type="LiteralStringSingle"/>
25 </rule>
26 <rule pattern="#\{">
27 <token type="LiteralStringInterpol"/>
28 <push state="interpolation"/>
29 </rule>
30 <rule pattern="&#39;">
31 <token type="LiteralStringSingle"/>
32 <pop depth="1"/>
33 </rule>
34 </state>
35 <state name="string-double">
36 <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
37 <token type="LiteralStringDouble"/>
38 </rule>
39 <rule pattern="#\{">
40 <token type="LiteralStringInterpol"/>
41 <push state="interpolation"/>
42 </rule>
43 <rule pattern="&#34;">
44 <token type="LiteralStringDouble"/>
45 <pop depth="1"/>
46 </rule>
47 </state>
48 <state name="pseudo-class">
49 <rule pattern="[\w-]+">
50 <token type="NameDecorator"/>
51 </rule>
52 <rule pattern="#\{">
53 <token type="LiteralStringInterpol"/>
54 <push state="interpolation"/>
55 </rule>
56 <rule>
57 <pop depth="1"/>
58 </rule>
59 </state>
60 <state name="for">
61 <rule pattern="(from|to|through)">
62 <token type="OperatorWord"/>
63 </rule>
64 <rule>
65 <include state="value"/>
66 </rule>
67 </state>
68 <state name="selector">
69 <rule pattern="[ \t]+">
70 <token type="Text"/>
71 </rule>
72 <rule pattern="\:">
73 <token type="NameDecorator"/>
74 <push state="pseudo-class"/>
75 </rule>
76 <rule pattern="\.">
77 <token type="NameClass"/>
78 <push state="class"/>
79 </rule>
80 <rule pattern="\#">
81 <token type="NameNamespace"/>
82 <push state="id"/>
83 </rule>
84 <rule pattern="[\w-]+">
85 <token type="NameTag"/>
86 </rule>
87 <rule pattern="#\{">
88 <token type="LiteralStringInterpol"/>
89 <push state="interpolation"/>
90 </rule>
91 <rule pattern="&amp;">
92 <token type="Keyword"/>
93 </rule>
94 <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:;,./?-]">
95 <token type="Operator"/>
96 </rule>
97 <rule pattern="&#34;">
98 <token type="LiteralStringDouble"/>
99 <push state="string-double"/>
100 </rule>
101 <rule pattern="&#39;">
102 <token type="LiteralStringSingle"/>
103 <push state="string-single"/>
104 </rule>
105 <rule pattern="\n">
106 <token type="Text"/>
107 <push state="root"/>
108 </rule>
109 </state>
110 <state name="value">
111 <rule pattern="[ \t]+">
112 <token type="Text"/>
113 </rule>
114 <rule pattern="[!$][\w-]+">
115 <token type="NameVariable"/>
116 </rule>
117 <rule pattern="url\(">
118 <token type="LiteralStringOther"/>
119 <push state="string-url"/>
120 </rule>
121 <rule pattern="[a-z_-][\w-]*(?=\()">
122 <token type="NameFunction"/>
123 </rule>
124 <rule pattern="(color-interpolation-filters|glyph-orientation-vertical|transition-timing-function|border-bottom-right-radius|border-bottom-left-radius|animation-iteration-count|animation-timing-function|font-variant-alternates|font-variant-east-asian|text-underline-position|border-top-right-radius|scroll-snap-destination|scroll-snap-coordinate|font-language-override|text-emphasis-position|font-variant-ligatures|border-top-left-radius|background-blend-mode|background-attachment|text-decoration-color|text-decoration-style|font-feature-settings|grid-template-columns|shape-image-threshold|hyphenate-limit-lines|hyphenate-limit-chars|font-variant-position|hyphenate-limit-last|scroll-snap-points-x|initial-letter-align|decimal-leading-zero|box-decoration-break|hyphenate-limit-zone|text-combine-upright|text-decoration-skip|font-variant-numeric|scroll-snap-points-y|animation-play-state|text-decoration-line|hyphenate-character|transition-duration|text-emphasis-style|border-bottom-width|border-image-repeat|grid-template-areas|border-image-source|animation-direction|initial-letter-wrap|list-style-position|transition-property|text-space-collapse|border-bottom-style|hanging-punctuation|text-emphasis-color|border-image-outset|background-position|animation-fill-mode|backface-visibility|border-bottom-color|border-right-width|alignment-baseline|mask-border-outset|border-right-style|border-right-color|mask-border-repeat|table-header-group|grid-template-rows|animation-duration|perspective-origin|presentation-level|table-footer-group|mask-border-source|border-image-width|border-image-slice|table-column-group|counter-increment|dominant-baseline|column-rule-width|speak-punctuation|page-break-before|image-orientation|font-variant-caps|grid-auto-columns|page-break-inside|border-left-width|marquee-direction|border-left-style|border-left-color|grid-column-start|mask-border-width|column-rule-color|column-rule-style|background-repeat|background-origin|mask-border-slice|scroll-snap-type|border-top-style|border-top-width|background-image|page-break-after|transform-origin|border-top-color|text-orientation|background-color|transition-delay|footnote-display|list-style-image|mask-border-mode|font-size-adjust|image-resolution|footnote-policy|object-position|ultra-condensed|motion-rotation|cjk-ideographic|justify-content|animation-delay|region-fragment|table-row-group|caret-animation|text-align-last|float-reference|extra-condensed|transform-style|text-decoration|grid-column-gap|border-collapse|background-clip|border-boundary|text-space-trim|grid-column-end|list-style-type|background-size|font-synthesis|padding-bottom|outline-offset|initial-letter|animation-name|hiragana-iroha|katakana-iroha|no-close-quote|border-spacing|rotation-point|flex-direction|voice-duration|grid-row-start|vertical-align|extra-expanded|polar-distance|baseline-shift|letter-spacing|grid-auto-flow|grid-auto-rows|lighting-color|bookmark-label|text-transform|semi-condensed|bookmark-level|mask-composite|bookmark-state|ultra-expanded|mix-blend-mode|overflow-style|grid-template|border-bottom|small-caption|semi-expanded|mask-position|no-open-quote|motion-offset|border-radius|offset-before|outline-color|outline-style|table-caption|outline-width|overflow-wrap|padding-right|flood-opacity|voice-balance|ruby-position|justify-items|bidi-override|marquee-style|shape-outside|speak-numeral|marquee-speed|counter-reset|margin-bottom|text-overflow|text-emphasis|align-content|break-before|border-width|border-image|shape-margin|speak-header|margin-right|inline-table|table-layout|center-right|marquee-loop|border-color|line-through|box-suppress|shape-inside|justify-self|float-offset|pause-before|table-column|grid-row-gap|grid-row-end|padding-left|text-justify|column-count|wrap-through|font-kerning|font-stretch|border-right|border-style|word-spacing|offset-start|caption-side|voice-volume|voice-stress|font-variant|text-spacing|offset-after|voice-family|unicode-bidi|break-inside|writing-mode|column-width|break-after|user-select|align-items|motion-path|font-weight|grid-column|voice-range|white-space|will-change|wrap-before|transparent|caret-color|text-bottom|caret-shape|mask-repeat|wrap-inside|upper-latin|text-shadow|mask-origin|font-family|flex-shrink|column-fill|message-box|text-indent|lower-roman|column-rule|padding-top|column-span|play-during|upper-roman|flood-color|page-policy|border-left|pause-after|lower-greek|perspective|lower-alpha|counter-set|mask-border|center-left|polar-angle|float-defer|marker-side|speech-rate|upper-alpha|line-height|pitch-range|empty-cells|close-quote|rest-before|margin-left|voice-pitch|overflow-y|small-caps|ruby-align|ruby-merge|wrap-after|box-shadow|word-break|flex-basis|max-height|rest-after|mask-image|list-style|min-height|voice-rate|visibility|sans-serif|object-fit|continuous|status-bar|offset-end|align-self|box-sizing|right-side|string-set|transition|margin-top|text-align|cue-before|border-top|font-style|line-break|background|capitalize|table-cell|open-quote|appearance|overflow-x|column-gap|rightwards|table-row|animation|flow-into|landscape|left-side|clip-rule|font-size|clip-path|flow-from|text-wrap|nw-resize|transform|no-repeat|line-grid|condensed|sw-resize|leftwards|line-snap|direction|crosshair|nav-right|list-item|se-resize|isolation|underline|grid-area|uppercase|min-width|flex-wrap|spell-out|max-width|ne-resize|max-lines|mask-clip|elevation|far-right|flex-flow|mask-type|word-wrap|flex-grow|mask-size|wrap-flow|monospace|mask-mode|cue-after|lowercase|relative|absolute|grid-row|armenian|e-resize|narrower|expanded|baseline|nav-down|nav-left|w-resize|xx-large|text-top|overline|overflow|katakana|n-resize|repeat-x|repeat-y|rotation|position|box-snap|xx-small|collapse|tab-size|speak-as|hiragana|s-resize|portrait|georgian|richness|separate|grid-gap|far-left|inherit|columns|content|oblique|default|outside|display|x-small|decimal|fantasy|z-index|running|azimuth|x-large|lighter|cursive|padding|outline|orphans|opacity|pointer|move-to|visible|hyphens|justify|smaller|nav-up|circle|inline|motion|inside|invert|italic|height|center|higher|x-fast|larger|hidden|digits|hebrew|groove|x-high|faster|quotes|static|behind|square|resize|border|slower|silent|dashed|medium|always|middle|filter|x-loud|bottom|widows|volume|scroll|chains|x-soft|stress|normal|nowrap|repeat|double|dotted|margin|outset|cursor|bolder|avoid|embed|x-low|above|fixed|wider|cross|inset|ridge|large|clear|speak|order|caret|width|thick|block|level|serif|blink|lower|pause|pitch|right|aural|super|below|solid|color|float|hide|soft|rest|grid|auto|slow|flow|show|page|disc|left|clip|text|flex|bold|loud|thin|size|none|help|both|once|icon|crop|fast|crop|high|mask|wait|font|all|url|top|rgb|mix|yes|low|ltr|cue|px)\b">
125 <token type="NameConstant"/>
126 </rule>
127 <rule pattern="(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
128 <token type="NameEntity"/>
129 </rule>
130 <rule pattern="(fuchsia|purple|yellow|maroon|silver|white|olive|green|black|lime|gray|navy|blue|teal|aqua|red)\b">
131 <token type="NameBuiltin"/>
132 </rule>
133 <rule pattern="\!(important|default)">
134 <token type="NameException"/>
135 </rule>
136 <rule pattern="(true|false)">
137 <token type="NamePseudo"/>
138 </rule>
139 <rule pattern="(and|or|not)">
140 <token type="OperatorWord"/>
141 </rule>
142 <rule pattern="/\*">
143 <token type="CommentMultiline"/>
144 <push state="inline-comment"/>
145 </rule>
146 <rule pattern="//[^\n]*">
147 <token type="CommentSingle"/>
148 </rule>
149 <rule pattern="\#[a-z0-9]{1,6}">
150 <token type="LiteralNumberHex"/>
151 </rule>
152 <rule pattern="(-?\d+)(\%|[a-z]+)?">
153 <bygroups>
154 <token type="LiteralNumberInteger"/>
155 <token type="KeywordType"/>
156 </bygroups>
157 </rule>
158 <rule pattern="(-?\d*\.\d+)(\%|[a-z]+)?">
159 <bygroups>
160 <token type="LiteralNumberFloat"/>
161 <token type="KeywordType"/>
162 </bygroups>
163 </rule>
164 <rule pattern="#\{">
165 <token type="LiteralStringInterpol"/>
166 <push state="interpolation"/>
167 </rule>
168 <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
169 <token type="Operator"/>
170 </rule>
171 <rule pattern="[\[\]()]+">
172 <token type="Punctuation"/>
173 </rule>
174 <rule pattern="&#34;">
175 <token type="LiteralStringDouble"/>
176 <push state="string-double"/>
177 </rule>
178 <rule pattern="&#39;">
179 <token type="LiteralStringSingle"/>
180 <push state="string-single"/>
181 </rule>
182 <rule pattern="[a-z_-][\w-]*">
183 <token type="Name"/>
184 </rule>
185 <rule pattern="\n">
186 <token type="Text"/>
187 <push state="root"/>
188 </rule>
189 </state>
190 <state name="id">
191 <rule pattern="[\w-]+">
192 <token type="NameNamespace"/>
193 </rule>
194 <rule pattern="#\{">
195 <token type="LiteralStringInterpol"/>
196 <push state="interpolation"/>
197 </rule>
198 <rule>
199 <pop depth="1"/>
200 </rule>
201 </state>
202 <state name="multi-comment">
203 <rule pattern=".+">
204 <token type="CommentMultiline"/>
205 </rule>
206 <rule pattern="\n">
207 <token type="Text"/>
208 <push state="root"/>
209 </rule>
210 </state>
211 <state name="interpolation">
212 <rule pattern="\}">
213 <token type="LiteralStringInterpol"/>
214 <pop depth="1"/>
215 </rule>
216 <rule>
217 <include state="value"/>
218 </rule>
219 </state>
220 <state name="string-url">
221 <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
222 <token type="LiteralStringOther"/>
223 </rule>
224 <rule pattern="#\{">
225 <token type="LiteralStringInterpol"/>
226 <push state="interpolation"/>
227 </rule>
228 <rule pattern="\)">
229 <token type="LiteralStringOther"/>
230 <pop depth="1"/>
231 </rule>
232 </state>
233 <state name="inline-comment">
234 <rule pattern="(\\#|#(?=[^\n{])|\*(?=[^\n/])|[^\n#*])+">
235 <token type="CommentMultiline"/>
236 </rule>
237 <rule pattern="#\{">
238 <token type="LiteralStringInterpol"/>
239 <push state="interpolation"/>
240 </rule>
241 <rule pattern="\*/">
242 <token type="Comment"/>
243 <pop depth="1"/>
244 </rule>
245 </state>
246 <state name="root">
247 <rule pattern="[ \t]*\n">
248 <token type="Text"/>
249 </rule>
250 <rule pattern="@import">
251 <token type="Keyword"/>
252 <push state="import"/>
253 </rule>
254 <rule pattern="@for">
255 <token type="Keyword"/>
256 <push state="for"/>
257 </rule>
258 <rule pattern="@(debug|warn|if|while)">
259 <token type="Keyword"/>
260 <push state="value"/>
261 </rule>
262 <rule pattern="(@mixin)( [\w-]+)">
263 <bygroups>
264 <token type="Keyword"/>
265 <token type="NameFunction"/>
266 </bygroups>
267 <push state="value"/>
268 </rule>
269 <rule pattern="(@include)( [\w-]+)">
270 <bygroups>
271 <token type="Keyword"/>
272 <token type="NameDecorator"/>
273 </bygroups>
274 <push state="value"/>
275 </rule>
276 <rule pattern="@extend">
277 <token type="Keyword"/>
278 <push state="selector"/>
279 </rule>
280 <rule pattern="@[\w-]+">
281 <token type="Keyword"/>
282 <push state="selector"/>
283 </rule>
284 <rule pattern="=[\w-]+">
285 <token type="NameFunction"/>
286 <push state="value"/>
287 </rule>
288 <rule pattern="\+[\w-]+">
289 <token type="NameDecorator"/>
290 <push state="value"/>
291 </rule>
292 <rule pattern="([!$][\w-]\w*)([ \t]*(?:(?:\|\|)?=|:))">
293 <bygroups>
294 <token type="NameVariable"/>
295 <token type="Operator"/>
296 </bygroups>
297 <push state="value"/>
298 </rule>
299 <rule pattern=":">
300 <token type="NameAttribute"/>
301 <push state="old-style-attr"/>
302 </rule>
303 <rule pattern="(?=.+?[=:]([^a-z]|$))">
304 <token type="NameAttribute"/>
305 <push state="new-style-attr"/>
306 </rule>
307 <rule>
308 <push state="selector"/>
309 </rule>
310 </state>
311 <state name="single-comment">
312 <rule pattern=".+">
313 <token type="CommentSingle"/>
314 </rule>
315 <rule pattern="\n">
316 <token type="Text"/>
317 <push state="root"/>
318 </rule>
319 </state>
320 <state name="new-style-attr">
321 <rule pattern="[^\s:=&#34;\[]+">
322 <token type="NameAttribute"/>
323 </rule>
324 <rule pattern="#\{">
325 <token type="LiteralStringInterpol"/>
326 <push state="interpolation"/>
327 </rule>
328 <rule pattern="[ \t]*[=:]">
329 <token type="Operator"/>
330 <push state="value"/>
331 </rule>
332 </state>
333 <state name="class">
334 <rule pattern="[\w-]+">
335 <token type="NameClass"/>
336 </rule>
337 <rule pattern="#\{">
338 <token type="LiteralStringInterpol"/>
339 <push state="interpolation"/>
340 </rule>
341 <rule>
342 <pop depth="1"/>
343 </rule>
344 </state>
345 <state name="old-style-attr">
346 <rule pattern="[^\s:=&#34;\[]+">
347 <token type="NameAttribute"/>
348 </rule>
349 <rule pattern="#\{">
350 <token type="LiteralStringInterpol"/>
351 <push state="interpolation"/>
352 </rule>
353 <rule pattern="[ \t]*=">
354 <token type="Operator"/>
355 <push state="value"/>
356 </rule>
357 <rule>
358 <push state="value"/>
359 </rule>
360 </state>
361 </rules>
362</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml
new file mode 100644
index 0000000..2f8ddd4
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scala.xml
@@ -0,0 +1,274 @@
1<lexer>
2 <config>
3 <name>Scala</name>
4 <alias>scala</alias>
5 <filename>*.scala</filename>
6 <mime_type>text/x-scala</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="import">
11 <rule pattern="([\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|\.)+">
12 <token type="NameNamespace"/>
13 <pop depth="1"/>
14 </rule>
15 </state>
16 <state name="interpstringcommon">
17 <rule pattern="[^&#34;$\\]+">
18 <token type="LiteralString"/>
19 </rule>
20 <rule pattern="\$\$">
21 <token type="LiteralString"/>
22 </rule>
23 <rule pattern="\$[\\$_\p{L}](?:[\\$_\p{L}]|\d)*">
24 <token type="LiteralStringInterpol"/>
25 </rule>
26 <rule pattern="\$\{">
27 <token type="LiteralStringInterpol"/>
28 <push state="interpbrace"/>
29 </rule>
30 <rule pattern="\\.">
31 <token type="LiteralString"/>
32 </rule>
33 </state>
34 <state name="interptriplestring">
35 <rule pattern="&#34;&#34;&#34;(?!&#34;)">
36 <token type="LiteralString"/>
37 <pop depth="1"/>
38 </rule>
39 <rule pattern="&#34;">
40 <token type="LiteralString"/>
41 </rule>
42 <rule>
43 <include state="interpstringcommon"/>
44 </rule>
45 </state>
46 <state name="root">
47 <rule pattern="(class|trait|object)(\s+)">
48 <bygroups>
49 <token type="Keyword"/>
50 <token type="Text"/>
51 </bygroups>
52 <push state="class"/>
53 </rule>
54 <rule pattern="[^\S\n]+">
55 <token type="Text"/>
56 </rule>
57 <rule pattern="//.*?\n">
58 <token type="CommentSingle"/>
59 </rule>
60 <rule pattern="/\*">
61 <token type="CommentMultiline"/>
62 <push state="comment"/>
63 </rule>
64 <rule pattern="@[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?">
65 <token type="NameDecorator"/>
66 </rule>
67 <rule pattern="(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|(&lt;[%:-]|=&gt;|&gt;:|[#=@_⇒←])(\b|(?=\s)|$)">
68 <token type="Keyword"/>
69 </rule>
70 <rule pattern=":(?![-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+%s)">
71 <token type="Keyword"/>
72 <push state="type"/>
73 </rule>
74 <rule pattern="[\\$_\p{Lu}][\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?\b">
75 <token type="NameClass"/>
76 </rule>
77 <rule pattern="(true|false|null)\b">
78 <token type="KeywordConstant"/>
79 </rule>
80 <rule pattern="(import|package)(\s+)">
81 <bygroups>
82 <token type="Keyword"/>
83 <token type="Text"/>
84 </bygroups>
85 <push state="import"/>
86 </rule>
87 <rule pattern="(type)(\s+)">
88 <bygroups>
89 <token type="Keyword"/>
90 <token type="Text"/>
91 </bygroups>
92 <push state="type"/>
93 </rule>
94 <rule pattern="&#34;&#34;&#34;.*?&#34;&#34;&#34;(?!&#34;)">
95 <token type="LiteralString"/>
96 </rule>
97 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
98 <token type="LiteralString"/>
99 </rule>
100 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;|&#39;\\u[0-9a-fA-F]{4}&#39;">
101 <token type="LiteralStringChar"/>
102 </rule>
103 <rule pattern="&#39;[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?">
104 <token type="TextSymbol"/>
105 </rule>
106 <rule pattern="[fs]&#34;&#34;&#34;">
107 <token type="LiteralString"/>
108 <push state="interptriplestring"/>
109 </rule>
110 <rule pattern="[fs]&#34;">
111 <token type="LiteralString"/>
112 <push state="interpstring"/>
113 </rule>
114 <rule pattern="raw&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
115 <token type="LiteralString"/>
116 </rule>
117 <rule pattern="[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?">
118 <token type="Name"/>
119 </rule>
120 <rule pattern="`[^`]+`">
121 <token type="Name"/>
122 </rule>
123 <rule pattern="\[">
124 <token type="Operator"/>
125 <push state="typeparam"/>
126 </rule>
127 <rule pattern="[(){};,.#]">
128 <token type="Operator"/>
129 </rule>
130 <rule pattern="[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+">
131 <token type="Operator"/>
132 </rule>
133 <rule pattern="([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?">
134 <token type="LiteralNumberFloat"/>
135 </rule>
136 <rule pattern="0x[0-9a-fA-F]+">
137 <token type="LiteralNumberHex"/>
138 </rule>
139 <rule pattern="[0-9]+L?">
140 <token type="LiteralNumberInteger"/>
141 </rule>
142 <rule pattern="\n">
143 <token type="Text"/>
144 </rule>
145 </state>
146 <state name="type">
147 <rule pattern="\s+">
148 <token type="Text"/>
149 </rule>
150 <rule pattern="&lt;[%:]|&gt;:|[#_]|forSome|type">
151 <token type="Keyword"/>
152 </rule>
153 <rule pattern="([,);}]|=&gt;|=|⇒)(\s*)">
154 <bygroups>
155 <token type="Operator"/>
156 <token type="Text"/>
157 </bygroups>
158 <pop depth="1"/>
159 </rule>
160 <rule pattern="[({]">
161 <token type="Operator"/>
162 <push/>
163 </rule>
164 <rule pattern="((?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`)(?:\.(?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`))*)(\s*)(\[)">
165 <bygroups>
166 <token type="KeywordType"/>
167 <token type="Text"/>
168 <token type="Operator"/>
169 </bygroups>
170 <push state="#pop" state="typeparam"/>
171 </rule>
172 <rule pattern="((?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`)(?:\.(?:[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`))*)(\s*)$">
173 <bygroups>
174 <token type="KeywordType"/>
175 <token type="Text"/>
176 </bygroups>
177 <pop depth="1"/>
178 </rule>
179 <rule pattern="//.*?\n">
180 <token type="CommentSingle"/>
181 <pop depth="1"/>
182 </rule>
183 <rule pattern="\.|[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`">
184 <token type="KeywordType"/>
185 </rule>
186 </state>
187 <state name="comment">
188 <rule pattern="[^/*]+">
189 <token type="CommentMultiline"/>
190 </rule>
191 <rule pattern="/\*">
192 <token type="CommentMultiline"/>
193 <push/>
194 </rule>
195 <rule pattern="\*/">
196 <token type="CommentMultiline"/>
197 <pop depth="1"/>
198 </rule>
199 <rule pattern="[*/]">
200 <token type="CommentMultiline"/>
201 </rule>
202 </state>
203 <state name="interpstring">
204 <rule pattern="&#34;">
205 <token type="LiteralString"/>
206 <pop depth="1"/>
207 </rule>
208 <rule>
209 <include state="interpstringcommon"/>
210 </rule>
211 </state>
212 <state name="interpbrace">
213 <rule pattern="\}">
214 <token type="LiteralStringInterpol"/>
215 <pop depth="1"/>
216 </rule>
217 <rule pattern="\{">
218 <token type="LiteralStringInterpol"/>
219 <push/>
220 </rule>
221 <rule>
222 <include state="root"/>
223 </rule>
224 </state>
225 <state name="class">
226 <rule pattern="([\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`)(\s*)(\[)">
227 <bygroups>
228 <token type="NameClass"/>
229 <token type="Text"/>
230 <token type="Operator"/>
231 </bygroups>
232 <push state="typeparam"/>
233 </rule>
234 <rule pattern="\s+">
235 <token type="Text"/>
236 </rule>
237 <rule pattern="\{">
238 <token type="Operator"/>
239 <pop depth="1"/>
240 </rule>
241 <rule pattern="\(">
242 <token type="Operator"/>
243 <pop depth="1"/>
244 </rule>
245 <rule pattern="//.*?\n">
246 <token type="CommentSingle"/>
247 <pop depth="1"/>
248 </rule>
249 <rule pattern="[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`">
250 <token type="NameClass"/>
251 <pop depth="1"/>
252 </rule>
253 </state>
254 <state name="typeparam">
255 <rule pattern="[\s,]+">
256 <token type="Text"/>
257 </rule>
258 <rule pattern="&lt;[%:]|=&gt;|&gt;:|[#_⇒]|forSome|type">
259 <token type="Keyword"/>
260 </rule>
261 <rule pattern="([\])}])">
262 <token type="Operator"/>
263 <pop depth="1"/>
264 </rule>
265 <rule pattern="[(\[{]">
266 <token type="Operator"/>
267 <push/>
268 </rule>
269 <rule pattern="\.|[\\$_\p{L}](?:[\\$_\p{L}]|[0-9])*(?:(?&lt;=_)[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+)?|[-~\^\*!%&amp;\\&lt;&gt;\|+=:/?@�-�����-����϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦+<->|~¬¦│-○-�]+|`[^`]+`">
270 <token type="KeywordType"/>
271 </rule>
272 </state>
273 </rules>
274</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml
new file mode 100644
index 0000000..0198bd7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scheme.xml
@@ -0,0 +1,106 @@
1<lexer>
2 <config>
3 <name>Scheme</name>
4 <alias>scheme</alias>
5 <alias>scm</alias>
6 <filename>*.scm</filename>
7 <filename>*.ss</filename>
8 <mime_type>text/x-scheme</mime_type>
9 <mime_type>application/x-scheme</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern=";.*$">
14 <token type="CommentSingle"/>
15 </rule>
16 <rule pattern="#\|">
17 <token type="CommentMultiline"/>
18 <push state="multiline-comment"/>
19 </rule>
20 <rule pattern="#;\s*\(">
21 <token type="Comment"/>
22 <push state="commented-form"/>
23 </rule>
24 <rule pattern="#!r6rs">
25 <token type="Comment"/>
26 </rule>
27 <rule pattern="\s+">
28 <token type="Text"/>
29 </rule>
30 <rule pattern="-?\d+\.\d+">
31 <token type="LiteralNumberFloat"/>
32 </rule>
33 <rule pattern="-?\d+">
34 <token type="LiteralNumberInteger"/>
35 </rule>
36 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
37 <token type="LiteralString"/>
38 </rule>
39 <rule pattern="&#39;[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
40 <token type="LiteralStringSymbol"/>
41 </rule>
42 <rule pattern="#\\(alarm|backspace|delete|esc|linefeed|newline|page|return|space|tab|vtab|x[0-9a-zA-Z]{1,5}|.)">
43 <token type="LiteralStringChar"/>
44 </rule>
45 <rule pattern="(#t|#f)">
46 <token type="NameConstant"/>
47 </rule>
48 <rule pattern="(&#39;|#|`|,@|,|\.)">
49 <token type="Operator"/>
50 </rule>
51 <rule pattern="(lambda |define |if |else |cond |and |or |case |let |let\* |letrec |begin |do |delay |set\! |\=\&gt; |quote |quasiquote |unquote |unquote\-splicing |define\-syntax |let\-syntax |letrec\-syntax |syntax\-rules )">
52 <token type="Keyword"/>
53 </rule>
54 <rule pattern="(?&lt;=&#39;\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
55 <token type="NameVariable"/>
56 </rule>
57 <rule pattern="(?&lt;=#\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
58 <token type="NameVariable"/>
59 </rule>
60 <rule pattern="(?&lt;=\()(\* |\+ |\- |\/ |\&lt; |\&lt;\= |\= |\&gt; |\&gt;\= |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\-\&gt;integer |char\-alphabetic\? |char\-ci\&lt;\=\? |char\-ci\&lt;\? |char\-ci\=\? |char\-ci\&gt;\=\? |char\-ci\&gt;\? |char\-downcase |char\-lower\-case\? |char\-numeric\? |char\-ready\? |char\-upcase |char\-upper\-case\? |char\-whitespace\? |char\&lt;\=\? |char\&lt;\? |char\=\? |char\&gt;\=\? |char\&gt;\? |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\-\&gt;inexact |exact\? |exp |expt |floor |for\-each |force |gcd |imag\-part |inexact\-\&gt;exact |inexact\? |input\-port\? |integer\-\&gt;char |integer\? |interaction\-environment |lcm |length |list |list\-\&gt;string |list\-\&gt;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\-\&gt;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\-\&gt;list |string\-\&gt;number |string\-\&gt;symbol |string\-append |string\-ci\&lt;\=\? |string\-ci\&lt;\? |string\-ci\=\? |string\-ci\&gt;\=\? |string\-ci\&gt;\? |string\-copy |string\-fill\! |string\-length |string\-ref |string\-set\! |string\&lt;\=\? |string\&lt;\? |string\=\? |string\&gt;\=\? |string\&gt;\? |string\? |substring |symbol\-\&gt;string |symbol\? |tan |transcript\-off |transcript\-on |truncate |values |vector |vector\-\&gt;list |vector\-fill\! |vector\-length |vector\-ref |vector\-set\! |vector\? |with\-input\-from\-file |with\-output\-to\-file |write |write\-char |zero\? )">
61 <token type="NameBuiltin"/>
62 </rule>
63 <rule pattern="(?&lt;=\()[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
64 <token type="NameFunction"/>
65 </rule>
66 <rule pattern="[\w!$%&amp;*+,/:&lt;=&gt;?@^~|-]+">
67 <token type="NameVariable"/>
68 </rule>
69 <rule pattern="(\(|\))">
70 <token type="Punctuation"/>
71 </rule>
72 <rule pattern="(\[|\])">
73 <token type="Punctuation"/>
74 </rule>
75 </state>
76 <state name="multiline-comment">
77 <rule pattern="#\|">
78 <token type="CommentMultiline"/>
79 <push/>
80 </rule>
81 <rule pattern="\|#">
82 <token type="CommentMultiline"/>
83 <pop depth="1"/>
84 </rule>
85 <rule pattern="[^|#]+">
86 <token type="CommentMultiline"/>
87 </rule>
88 <rule pattern="[|#]">
89 <token type="CommentMultiline"/>
90 </rule>
91 </state>
92 <state name="commented-form">
93 <rule pattern="\(">
94 <token type="Comment"/>
95 <push/>
96 </rule>
97 <rule pattern="\)">
98 <token type="Comment"/>
99 <pop depth="1"/>
100 </rule>
101 <rule pattern="[^()]+">
102 <token type="Comment"/>
103 </rule>
104 </state>
105 </rules>
106</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml
new file mode 100644
index 0000000..9e10949
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scilab.xml
@@ -0,0 +1,98 @@
1<lexer>
2 <config>
3 <name>Scilab</name>
4 <alias>scilab</alias>
5 <filename>*.sci</filename>
6 <filename>*.sce</filename>
7 <filename>*.tst</filename>
8 <mime_type>text/scilab</mime_type>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="//.*?$">
13 <token type="CommentSingle"/>
14 </rule>
15 <rule pattern="^\s*function">
16 <token type="Keyword"/>
17 <push state="deffunc"/>
18 </rule>
19 <rule pattern="(unwind_protect_cleanup|end_unwind_protect|unwind_protect|end_try_catch|endproperties|endclassdef|endfunction|persistent|properties|endmethods|otherwise|endevents|endswitch|__FILE__|continue|classdef|__LINE__|endwhile|function|methods|elseif|return|static|events|global|endfor|switch|until|endif|while|catch|break|case|else|set|end|try|for|get|do|if)\b">
20 <token type="Keyword"/>
21 </rule>
22 <rule pattern="(gencompilationflags_unix|neldermead_defaultoutput|optimbase_isinnonlincons|tbx_builder_gateway_lang|optimbase_hasconstraints|getinstalledlookandfeels|tbx_build_gateway_loader|xcosValidateCompareBlock|assert_checkalmostequal|optimsimplex_deltafvmax|optimsimplex_gradientfv|tbx_build_gateway_clean|add_module_help_chapter|optimsimplex_fvvariance|optimsimplex_compsomefv|del_module_help_chapter|saveconsecutivecommands|removeModulePreferences|xcosPalGenerateAllIcons|get_absolute_file_path|%Block_xcosUpdateBlock|optimbase_checkcostfun|nyquistfrequencybounds|with_modelica_compiler|optimsimplex_computefv|assert_checkfilesequal|tbx_build_localization|formatSgridDampingTip|block_parameter_error|xcosConfigureModelica|formatNicholsPhaseTip|addlocalizationdomain|optimbase_checkbounds|scicos_workspace_init|formatZgridDampingTip|neldermead_updatesimp|optimbase_logshutdown|optimsimplex_setallfv|xcosSimulationStarted|datatipSetOrientation|extract_help_examples|tbx_builder_help_lang|arobasestring2strings|initial_scicos_tables|optimsimplex_getallfv|fire_closing_finished|atomsGetInstalledPath|tbx_build_help_loader|assert_cond2reqdigits|nmplot_simplexhistory|assert_comparecomplex|optimsimplex_setnbve|assert_computedigits|optimsimplex_getallx|optimsimplex_fvstdev|optimsimplex_deltafv|optimsimplex_setallx|xcosConfigureXmlFile|optimbase_isfeasible|parallel_concurrency|output_nsga2_default|addModulePreferences|xcosValidateBlockSet|compute_initial_temp|crossover_ga_default|optimsimplex_destroy|optimsimplex_reflect|devtools_run_builder|selection_ga_elitist|xcosShowBlockWarning|optimbase_isinbounds|formatNicholsGainTip|jallowClassReloading|detectmsifort64tools|demo_function_choice|optimbase_logstartup|optimsimplex_getnbve|%H5Object_fieldnames|tbx_builder_src_lang|neldermead_configure|createXConfiguration|tbx_build_pal_loader|optimsimplex_dirmat|optimsimplex_fvmean|output_nsga_default|crossover_ga_binary|getPreferencesValue|formatHallModuleTip|getrelativefilename|output_moga_default|optimbase_configure|atomsRepositoryList|xcosPalGenerateIcon|accept_func_default|xcosDiagramToScilab|optimbase_hasbounds|find_scicos_version|fftwlibraryisloaded|optimsimplex_setall|optimbase_hasnlcons|optimbase_outstruct|mutation_ga_default|optimsimplex_shrink|neldermead_function|tbx_generate_pofile|setPreferencesValue|selection_ga_random|matfile_varreadnext|importScicosDiagram|tbx_builder_gateway|optimsimplex_center|optimsimplex_getall|optimbase_terminate|optimbase_proj2bnds|optimbase_outputcmd|findmsifortcompiler|generateBlockImages|getvariablesonstack|getdefaultlanguage|formatBodePhaseTip|nmplot_historyplot|formatHallPhaseTip|formatPhaseplotTip|coding_ga_identity|xcosCodeGeneration|formatSgridFreqTip|xcosBlockInterface|formatZgridFreqTip|generateBlockImage|saveafterncommands|optimsimplex_setve|scicos_debug_count|setdefaultlanguage|neldermead_restart|get_scicos_version|atomsGetLoadedPath|with_macros_source|atomsRestoreConfig|optimbase_function|assert_cond2reltol|datatipManagerMode|optimsimplex_setfv|optimsimplex_getfv|atomsRepositoryDel|xcosPalCategoryAdd|system_getproperty|system_setproperty|mutation_ga_binary|atomsRepositoryAdd|optimsimplex_check|ilib_gen_Make_unix|optimbase_incriter|%XMLList_i_XMLList|%XMLList_i_XMLElem|neldermead_destroy|%XMLElem_i_XMLList|%XMLElem_i_XMLElem|demo_folder_choice|tbx_builder_macros|optimplotfunccount|disposefftwlibrary|neigh_func_default|optimsimplex_getve|%XMLAttr_i_XMLElem|%hmS_k_hmS_generic|fftw_forget_wisdom|assert_checkequal|optimsimplex_getx|optimbase_stoplog|atomsGetInstalled|detectmsvc64tools|importXcosDiagram|%XMLDoc_i_XMLList|%XMLElem_i_XMLDoc|optimsimplex_setn|atomsAutoloadList|atomsSystemUpdate|optimsimplex_getn|number_properties|neldermead_search|ilib_include_flag|optimsimplex_setx|firstnonsingleton|getcallbackobject|x_choose_modeless|optimbase_histset|atomsCategoryList|optimbase_histget|recompilefunction|datatipSetDisplay|optimbase_destroy|check_modules_xml|pointer_xproperty|optimbase_checkx0|formatGainplotTip|csvStringToDouble|jconvMatrixMethod|optimsimplex_sort|getscilabkeywords|removelinehistory|optimsimplex_xbar|assert_checkfalse|output_ga_default|configure_msifort|assert_checkerror|get_function_path|iswaitingforinput|getDiagramVersion|tbx_build_gateway|tbx_build_cleaner|optimsimplex_size|tbx_build_blocks|getshortpathname|tbx_build_loader|convert_to_float|xmlSetAttributes|TCL_DeleteInterp|tbx_build_macros|matfile_varwrite|formatNyquistTip|coding_ga_binary|xmlIsValidObject|tbx_builder_help|xmlGetNsByPrefix|nmplot_outputcmd|assert_checktrue|del_help_chapter|atomsIsInstalled|atomsAutoloadAdd|import_from_hdf5|formatBodeMagTip|datatipSetInterp|xcosAddToolsMenu|atomsAutoloadDel|findmsvccompiler|%cblock_c_cblock|temp_law_default|phase_simulation|%XMLNs_i_XMLElem|ilib_gen_cleaner|nmplot_configure|ilib_gen_gateway|add_help_chapter|%cblock_f_cblock|accept_func_vfsa|demo_file_choice|atomsCheckModule|%TSIMPLEX_string|replace_Ix_by_Fx|%xlssheet_string|atomsDepTreeShow|optimsimplex_new|optimsimplex_log|instruction2code|is_absolute_path|remove_profiling|neldermead_costf|javalibrarypath|relocate_handle|tbx_builder_src|set_fftw_wisdom|updatebrowsevar|%XMLAttr_length|init_ga_default|getModelicaPath|atomsSystemInit|%TNMPLOT_string|TCL_CreateSlave|reset_profiling|importScicosPal|%_listvarinfile|graphicfunction|expression2code|scicos_getvalue|scicos_simulate|is_handle_valid|test_on_columns|matfile_listvar|neigh_func_vfsa|neldermead_cget|loadfftwlibrary|listvar_in_hdf5|ilib_gen_loader|%XMLList_length|nonreg_test_run|get_fftw_wisdom|atomsSaveConfig|%fptr_i_XMLList|datatipSetStyle|xcosUpdateBlock|nmplot_function|assert_generror|xcosPalAddBlock|TCL_ExistInterp|getlongpathname|%TNELDER_string|TCL_GetVersion|%_EObj_1__EObj|gethistoryfile|%_EObj_2__EObj|xcosPalDisable|nmplot_restart|TCL_ExistArray|getlookandfeel|%_EObj_3__EObj|jautoTranspose|nmplot_destroy|nmplot_contour|TCL_DoOneEvent|%_EObj_4__EObj|ilib_build_jar|%_EObj_k__EObj|linear_interpn|xmlGetNsByHref|%XMLSet_length|%spb_i_XMLList|neldermead_log|neldermead_get|%ptr_i_XMLList|ilib_mex_build|xcos_debug_gui|isequalbitwise|neigh_func_fsa|neigh_func_csa|xmlGetOpenDocs|atomsSetConfig|configure_msvc|optimbase_cget|%xlssheet_size|check_versions|%_EObj_a__EObj|%_EObj_z__EObj|DominationRank|historymanager|%_EObj_y__EObj|export_to_hdf5|translatepaths|atomsGetConfig|%_EObj_d__EObj|%TOPTIM_string|displayhistory|%_EObj_x__EObj|%_EObj_j__EObj|setlookandfeel|%_EObj_s__EObj|sethistoryfile|%lss_i_XMLList|!_deff_wrapper|test_run_level|%_EObj_r__EObj|warnBlockByUID|%_EObj_g__EObj|tbx_build_help|temp_law_huang|formatBlackTip|%_EObj_q__EObj|%msp_i_XMLList|%_EObj_p__EObj|atomsGetLoaded|returntoscilab|set_blockerror|progressionbar|%_EObj_o__EObj|%_EObj_h__EObj|sci_haltscicos|%_EObj_n__EObj|%_EObj_i__EObj|%_EObj_m__EObj|check_gateways|%_EObj_l__EObj|neldermead_new|%sp_i_XMLList|add_profiling|mtlb_fftshift|res_with_prec|tbx_build_src|mtlb_isletter|mtlb_legendre|mtlb_linspace|printsetupbox|temp_law_vfsa|set_xproperty|fixedpointgcd|enlarge_shape|mtlb_semilogx|mtlb_semilogy|mtlb_sortrows|get_file_path|browsehistory|mtlb_colordef|mtlb_toeplitz|unit_test_run|matfile_close|demo_viewCode|%plist_string|xcosBlockEval|haveacompiler|getblocklabel|demo_compiler|help_from_sci|help_skeleton|librarieslist|jgetclassname|xcosPalEnable|jdisableTrace|atomsAutoload|xcosPalExport|datatipCreate|nmplot_search|xcosPalDelete|datatipRemove|javaclasspath|listvarinfile|listfunctions|%ce_i_XMLList|datatipToggle|%hm_i_XMLList|taucs_chsolve|numderivative|ilib_for_link|ilib_gen_Make|definedfields|%XMLList_size|getscicosvars|%st_i_XMLList|getscilabmode|atomsIsLoaded|uiDisplayTree|optimbase_get|uicontextmenu|xcos_simulate|%ip_i_XMLList|optimbase_log|%XMLAttr_size|optimplotfval|resize_matrix|%grayplot_i_h|%mc_i_XMLList|%diagram_xcos|%champdat_i_h|optimbase_set|optimbase_new|head_comments|pareto_filter|TCL_UnsetVar|convertindex|%h_i_XMLList|jenableTrace|is_hdf5_file|jnewInstance|%c_i_XMLList|%c_i_XMLElem|jwrapinfloat|end_scicosim|remove_param|show_margins|%c_i_XMLAttr|%i_i_XMLList|%hm_iconvert|nicholschart|matfile_open|%b_i_XMLList|eval_cshep2d|ilib_verbose|mtlb_subplot|st_deviation|st_i_generic|xcos_compile|mtlb_strfind|mtlb_strcmpi|taucs_chinfo|ascii2string|mtlb_sprintf|taucs_chfact|mtlb_realmin|closeEditvar|mtlb_realmax|ilib_compile|%l_i_XMLList|%XMLSet_size|parallel_run|temp_law_csa|%p_i_XMLList|temp_law_fsa|%r_i_XMLList|%cblock_size|swap_handles|testexamples|%i_contour2d|loadXcosLibs|mtlb_num2str|mtlb_meshdom|ReadHBSparse|mtlb_logical|h5isCompound|cb_m2sci_gui|mtlb_isspace|mtlb_isfield|raise_window|%s_i_XMLList|realtimeinit|warnobsolete|fseek_origin|resethistory|bytecodewalk|atomsInstall|mtlb_fprintf|mtlb_findstr|generic_i_ce|generic_i_hm|with_javasci|scicos_debug|mtlb_choices|mtlb_cumprod|%spb_cumprod|createstruct|getdebuginfo|mtlb_dec2hex|atomsVersion|getdynlibext|generic_i_st|TCL_EvalFile|TCL_ExistVar|%spb_cumsum|setlanguage|mtlb_double|getlanguage|get_profile|TCL_EvalStr|show_window|%_EObj_disp|mtlb_delete|generic_i_s|mtlb_cumsum|xmlValidate|scicos_time|%mps_string|%msp_length|generic_i_h|%i_msprintf|savehistory|%i_mfprintf|rotate_axes|mtlb_fliplr|mtlb_format|xmlDocument|atomsUpdate|mtlb_fscanf|xmlAsNumber|%xlssheet_e|mtlb_fwrite|mtlb_filter|readgateway|endfunction|%hm_cumprod|%grand_perm|matfile2sci|%xlssheet_p|ui_observer|printfigure|householder|xcosPalMove|xcosPalLoad|preferences|mtlb_loglog|plotbrowser|mtlb_median|stripblanks|loadmatfile|%XMLValid_p|%hm_dsearch|filebrowser|mtlb_pcolor|pathconvert|tbx_builder|clearglobal|closeEditor|taucs_chdel|mtlb_setstr|taucs_chget|mtlb_sscanf|h5writeattr|mtlb_strcmp|helpbrowser|%msp_sparse|mtlb_sparse|csvTextScan|historysize|atomsSearch|%cblock_c_s|mtlb_strrep|htmlReadStr|%msp_spones|classmarkov|%TSIMPLEX_p|plotprofile|mtlb_uint16|mtlb_uint32|example_run|xmltoformat|prettyprint|datatipMove|%b_iconvert|loadhistory|libraryinfo|showprofile|nmplot_cget|demo_choose|atomsRemove|%sp_cumprod|optim_nsga2|with_module|%c_i_XMLDoc|%s_f_cblock|%s_c_cblock|%H5Object_p|sciGUI_init|jgetmethods|savematfile|jautoUnwrap|umf_lusolve|%H5Object_e|eigenmarkov|%ticks_i_h|%i_4__EObj|%c_dsearch|%i_3__EObj|%i_a__EObj|%i_2__EObj|%lss_o_lss|%i_cumprod|%c_z__EObj|%c_y__EObj|%c_x__EObj|%lss_n_lss|%c_s__EObj|%c_r__EObj|%c_q__EObj|%c_p__EObj|%c_o__EObj|jcreatejar|%c_n__EObj|%c_m__EObj|odeoptions|%c_l__EObj|%c_k__EObj|daeoptions|jgetfields|%c_i__EObj|isalphanum|nmplot_new|nmplot_log|jinvoke_db|%i_d__EObj|%lss_m_lss|%i_g__EObj|nmplot_get|junwraprem|optim_moga|optim_nsga|%i_h__EObj|demo_begin|%c_h__EObj|%c_g__EObj|clean_help|%i_i__EObj|%i_j__EObj|%c_d__EObj|%i_k__EObj|%c_a__EObj|%c_4__EObj|%c_3__EObj|%c_2__EObj|%c_1__EObj|%b_z__EObj|%b_y__EObj|%b_x__EObj|%b_s__EObj|loadScicos|%b_r__EObj|%b_q__EObj|%i_l__EObj|%b_p__EObj|%b_o__EObj|%b_n__EObj|%b_m__EObj|%b_l__EObj|%b_k__EObj|%b_j__EObj|%b_i__EObj|%i_1__EObj|%b_h__EObj|%b_g__EObj|%b_d__EObj|%b_a__EObj|derivative|%b_4__EObj|%i_m__EObj|%b_3__EObj|%b_2__EObj|%lss_l_lss|%b_1__EObj|isLeapYear|%lss_r_lss|%lss_s_lss|edit_error|%lss_i_lss|%_EObj_z_s|%lss_f_lss|%_EObj_z_i|messagebox|%_EObj_z_c|%b_cumprod|%_EObj_z_b|%_EObj_y_s|mtlb_zeros|fieldnames|mtlb_upper|mtlb_uint8|%lss_c_lss|%_strsplit|%i_n__EObj|find_links|%_EObj_y_i|%_EObj_y_c|%_EObj_y_b|%_EObj_x_s|%_EObj_x_i|%i_o__EObj|umf_lufact|%_EObj_x_c|%i_p__EObj|%i_q__EObj|%_EObj_x_b|test_clean|%i_r__EObj|havewindow|%TNMPLOT_p|%lss_v_lss|%TNELDER_p|%i_s__EObj|%i_x__EObj|%_EObj_s_s|%_EObj_s_i|%_EObj_s_c|%_EObj_s_b|%i_y__EObj|%_EObj_r_s|%_EObj_r_i|h5readattr|%i_z__EObj|mtlb_rcond|mtlb_randn|%_EObj_r_c|%_EObj_r_b|%l_i__EObj|%_EObj_q_s|%_EObj_q_i|fminsearch|%lss_a_lss|%msp_spget|%_EObj_q_c|%_EObj_q_b|%s_1__EObj|%_EObj_p_s|%_EObj_p_i|%s_2__EObj|%_EObj_p_c|%s_3__EObj|%s_4__EObj|%_EObj_p_b|%sp_length|%_EObj_o_s|mtlb_lower|%ce_matrix|%ce_string|%s_a__EObj|mtlb_logic|%s_d__EObj|%_EObj_o_i|%_EObj_o_c|%_EObj_o_b|%_EObj_n_s|%s_g__EObj|%_EObj_n_i|%_EObj_n_c|%s_h__EObj|%fptr_i_st|%s_i__EObj|%_EObj_n_b|mtlb_int32|mtlb_int16|%_EObj_m_s|mtlb_image|%_EObj_m_i|%_EObj_m_c|%_EObj_m_b|%s_j__EObj|%_EObj_l_s|%_EObj_l_i|%_EObj_l_c|optimplotx|%s_k__EObj|%_EObj_l_b|format_txt|%_EObj_k_s|gstacksize|%_EObj_k_i|%_EObj_k_c|%s_l__EObj|%s_m__EObj|mtlb_fread|%s_n__EObj|%s_o__EObj|mtlb_fopen|%s_p__EObj|%s_q__EObj|%s_r__EObj|fun2string|%_EObj_k_b|%_EObj_j_s|%_EObj_j_i|%_EObj_j_c|%_EObj_j_b|%_EObj_h_s|getversion|mtlb_false|%_EObj_h_i|%_EObj_h_c|%s_s__EObj|%s_x__EObj|%s_y__EObj|%s_z__EObj|%_EObj_h_b|%sp_string|%l_isequal|getmodules|mtlb_exist|%_EObj_g_s|mtlb_error|%_EObj_g_i|%_EObj_g_c|%_EObj_g_b|%mc_string|bode_asymp|TCL_GetVar|%_EObj_d_s|%_EObj_d_i|TCL_SetVar|%_EObj_d_c|%_EObj_d_b|%_EObj_a_s|gethistory|%spb_g_spb|%spb_h_spb|%_EObj_a_i|%ip_string|xcosPalAdd|%st_i_fptr|addhistory|%_EObj_a_c|xmlRelaxNG|%_EObj_a_b|mtlb_close|%i_plot2d2|xmlReadStr|%i_plot2d1|%st_matrix|%_EObj_4_s|%_EObj_4_i|%_EObj_4_c|xmlElement|%st_string|%hm_bool2s|%_EObj_4_b|vectorfind|%_EObj_3_i|%_EObj_3_c|%hm_cumsum|OS_Version|ilib_build|%_EObj_3_b|%_EObj_2_s|fprintfMat|PlotSparse|bsplin3val|xcosPalGet|%_EObj_2_i|%_EObj_2_c|%_EObj_2_b|%_EObj_1_s|%_EObj_1_i|%_EObj_1_c|buildouttb|%i_dsearch|%_EObj_1_b|%msp_n_msp|%_EClass_p|%i_contour|%_EClass_e|list_param|%_EClass_6|%hm_degree|!!_invoke_|fftw_flags|%i_Matplot|completion|contour2di|csvDefault|%msp_o_msp|%hm_string|testmatrix|squarewave|%p_cumprod|%sp_cumsum|launchtest|randpencil|%XMLList_p|%XMLList_e|%XMLList_6|%hm_isreal|%XMLElem_p|%XMLElem_e|%XMLElem_6|deletefile|scisptdemo|uigetcolor|%r_cumprod|%XMLAttr_p|init_param|%XMLAttr_e|%XMLAttr_6|sci_sparse|%hm_median|%hm_matrix|umf_luinfo|%_EObj_3_s|%c_j__EObj|%i_mprintf|lasterror|umf_luget|uiputfile|%XMLDoc_6|inv_coeff|%r_cumsum|intersect|unsetmenu|%p_string|iscellstr|usecanvas|useeditor|integrate|%r_matrix|%r_string|uigetfont|mtlb_more|uigetfile|%s_bezout|%XMLDoc_e|%XMLDoc_p|uicontrol|%p_matrix|%s_matrix|%sp_floor|%sp_grand|%p_cumsum|%sp_gsort|write_csv|%XMLSet_6|karmarkar|%XMLSet_e|x_mdialog|%XMLSet_p|lindquist|%msp_maxi|invsyslin|xchoicesi|%msp_i_st|%msp_find|listfiles|lmisolver|%sp_round|%lss_size|%lss_rand|%lss_ones|%lss_norm|m2sci_gui|%i_cumsum|stringbox|%i_matrix|%lss_i_st|xmltohtml|%lss_i_ce|%msp_full|ifftshift|ClipBoard|%spb_diag|PlaySound|stacksize|TCL_UpVar|xgetmouse|xgraduate|mfile2sci|_code2str|hallchart|_str2code|%spb_i_ce|%spb_i_st|xmlAppend|%spb_prod|xmlAsText|umf_ludel|xmlDelete|%spb_tril|%i_string|%spb_triu|xmlFormat|%st_i_lss|mtlb_axes|mtlb_axis|mtlb_beta|%st_i_msp|%i_plot2d|spcompack|%st_i_spb|mtlb_cond|xmlRemove|xmlSchema|backslash|simp_mode|%i_length|variancef|IsAScalar|mtlb_diag|get_param|mtlb_diff|tree2code|toolboxes|mtlb_echo|mtlb_eval|genmarkov|browsevar|%i_champ1|%i_bezout|sci_tree4|sci_tree3|sci_tree2|add_param|rubberbox|closeXcos|mtlb_find|ana_style|%hm_zeros|createdir|removedir|steadycos|zoom_rect|mtlb_full|%hm_stdev|%hm_round|mtlb_grid|mtlb_hold|curblockc|spaninter|mtlb_ifft|set_param|mtlb_int8|drawlater|duplicate|atomsList|atomsLoad|mtlb_mean|mtlb_mesh|atomsQuit|mtlb_ones|mtlb_plot|%hm_isnan|mtlb_prod|mtlb_rand|phaseplot|mtlb_size|mtlb_sort|%hm_gsort|nearfloat|%hm_grand|mtlb_mode|%TOPTIM_p|%hm_floor|atomsShow|mtlb_tril|%_EVoid_p|mtlb_triu|mtlb_true|fileparts|mtlb_type|%_sodload|model2blk|findfiles|find_freq|fscanfMat|filt_sinc|atomsTest|getdrives|bench_run|getmemory|%b_cumsum|h5dataset|factorial|h5isArray|nancumsum|h5isGroup|nand2mean|h5isSpace|%cblock_p|%cblock_e|htmlWrite|mclearerr|%c_matrix|companion|dispfiles|condestsp|nanmedian|invoke_lu|nanreglin|macr2tree|createfun|%bicgstab|jgetfield|jsetfield|%b_matrix|%b_string|lsqrsolve|lsq_splin|h_inf_st|demo_end|nextpow2|legendre|loadXcos|demo_gui|demo_run|jgetinfo|narsimul|ctr_gram|jcompile|noisegen|nanstdev|isletter|macr2lst|isglobal|convol2d|num2cell|obs_gram|observer|cont_mat|%c_grand|cont_frm|conjgrad|obsv_mat|%b_i_spb|%c_i_lss|diophant|optim_ga|dt_ility|maxfiles|colregul|colinout|colcompr|interp3d|interp2d|optim_sa|iconvert|%b_h_spb|htmlRead|htmlDump|nanmeanf|h5umount|%b_grand|h5isVlen|h5isType|%ce_c_ce|%b_g_spb|%ce_f_ce|%ce_i_ce|cheb2mag|%ce_i_st|h5isList|cheb1mag|%ce_size|%b_f_spb|cepstrum|cell2mat|h5isFile|h5isAttr|mfprintf|cat_code|optimget|h5exists|%st_i_ip|calendar|optimset|%hm_1_hm|grayplot|%hm_2_hm|bytecode|%hm_3_hm|mvcorrel|%hm_4_hm|getfield|bloc2exp|%hm_a_hm|binomial|%b_c_spb|fftshift|funcprot|fullpath|%hm_c_hm|%hm_ceil|%hm_conj|mtlb_var|findABCD|fromjava|%hm_d_hm|%_unwrap|movefile|fileinfo|p_margin|mtlb_sum|exportUI|%hm_f_hm|%hm_find|msprintf|%hm_g_hm|name2rgb|mtlb_std|%hm_h_hm|pertrans|%hm_i_ce|pfactors|%hm_i_hm|phasemag|findx0BD|errclear|errcatch|%hm_i_st|princomp|%hm_imag|projspec|param3d1|emptystr|%hm_j_hm|mtlb_min|%hm_k_hm|mtlb_max|function|qp_solve|rhs2code|ric_desc|mtlb_isa|drawaxis|%hm_mean|rowcompr|rowinout|rowregul|rowshuff|%hm_n_hm|savewave|diffobjs|dgettext|mtlb_imp|dec2base|%hm_o_hm|show_pca|data2sig|soundsec|%hm_ones|read_csv|spanplus|%hm_prod|%hm_q_hm|continue|%hm_rand|%hm_real|mtlb_get|curblock|%hm_s_hm|specfact|st_ility|%hm_sign|csvWrite|%hm_size|%hm_sqrt|realtime|statgain|csvIsnum|%hm_x_hm|fourplan|fsfirlin|fullfile|coserror|asciimat|copyfile|%plist_p|code2str|xstringb|g_margin|mtlb_fft|%i_ascii|test_run|mtlb_eye|%i_champ|scicosim|captions|thrownan|toeplitz|add_demo|tokenpos|buildDoc|scinotes|setfield|mtlb_dir|%i_grand|trianfml|trimmean|sig2data|trisolve|variance|xmlXPath|vec2list|basename|base2dec|wavwrite|%st_size|xmlWrite|%st_o_tl|%st_o_mc|wfir_gui|mtlb_cov|whereami|%st_n_mc|who_user|%st_i_st|mtlb_box|%st_i_sp|getshell|arl2_ius|addinter|gettklib|mtlb_any|addcolor|%i_round|%st_f_st|%st_c_st|mtlb_all|gfrancis|splitURL|%spb_sum|mstr2sci|%ip_i_st|xmlAddNs|%ip_n_ip|%ip_o_ip|%spb_i_h|%ip_part|xls_read|xls_open|%spb_i_b|hankelsv|%spb_h_b|meshgrid|str2code|%spb_g_b|%spb_f_b|markp2ss|Matplot1|hypermat|%spb_c_b|%spb_and|%sp_z_sp|%sp_y_sp|%sp_triu|%sp_tril|Calendar|iirgroup|%lss_a_p|%lss_a_r|%lss_a_s|xcos_run|%lss_c_p|%lss_c_r|%lss_c_s|%sp_sqrt|%lss_eye|xmltochm|%lss_f_p|%lss_f_r|%lss_f_s|mapsound|makecell|%lss_i_p|%lss_i_r|%lss_i_s|strindex|%lss_inv|macrovar|%lss_l_p|%lss_l_r|%lss_l_s|xmltojar|%lss_m_p|%lss_m_r|%lss_m_s|m_circle|%lss_n_p|%lss_n_r|%lss_n_s|lqg2stan|xmltopdf|%lss_o_p|%lss_o_r|%lss_o_s|strsplit|xmltoweb|%lss_r_p|%lss_r_r|%lss_r_s|logspace|%sp_s_sp|yulewalk|%lss_s_p|%lss_s_r|%lss_s_s|loadwave|strsubst|%_EObj_t|%lss_v_p|%lss_v_r|%lss_v_s|%sp_r_sp|%sp_q_sp|%sp_prod|%sp_norm|%_EObj_p|%mc_i_st|%mc_n_st|%mc_o_st|%_EObj_e|%sp_l_sp|%_EObj_6|%msp_a_s|%msp_abs|%sp_k_sp|list2vec|%msp_i_s|linspace|tempname|%msp_m_s|linsolve|%_EObj_0|%msp_nnz|lex_sort|%sp_i_st|x_dialog|x_choose|%sp_i_sp|%p_a_lss|%sp_i_ce|%p_c_lss|isvector|%XMLNs_p|isstruct|issquare|issparse|%sp_diag|%sp_d_sp|clearfun|%p_f_lss|%XMLNs_e|%p_grand|%XMLNs_6|%sp_conj|%sp_ceil|%p_i_lss|%sp_a_sp|%s_v_lss|%s_s_lss|%s_r_lss|%s_o_lss|%s_n_lss|isscalar|%s_m_msp|%s_m_lss|%p_l_lss|%s_l_lss|%s_i_spb|%s_i_lss|%s_grand|%p_m_lss|%s_f_lss|typename|uigetdir|%p_n_lss|%s_c_lss|imrep2ss|%p_o_lss|inistate|%s_a_msp|%s_a_lss|%r_v_lss|ismatrix|%r_s_lss|%r_r_lss|%r_o_lss|%p_r_lss|%r_n_lss|iscolumn|%r_m_lss|%p_s_lss|%r_l_lss|%r_i_lss|interpln|%r_f_lss|%p_v_lss|intsplin|is_param|%r_clean|%r_c_lss|%r_a_lss|%_EObj_5|gainplot|%hm_x_s|readmps|mtlb_is|saveGui|sciargs|semidef|setmenu|zeropen|%r_a_hm|plot3d1|plot2d4|plot2d3|plot2d2|%p_x_hm|plot2d1|splin2d|splin3d|pathsep|param3d|mtlb_qr|mtlb_qz|minreal|sprintf|openged|%r_diag|members|mdelete|manedit|strcspn|macglov|strncpy|%r_i_ce|%r_i_hm|%p_simp|strrchr|newaxes|msscanf|%r_i_st|lqg_ltr|mputstr|mprintf|mgetstr|lmitool|mfscanf|mvvacov|symfcti|nanmean|%r_m_hm|lusolve|leastsq|lcmdiag|lstsize|lsslist|loadGui|kroneck|toolbar|junwrap|%r_norm|justify|jremove|toprint|jinvoke|%r_ones|jimport|jexists|%r_prod|nthroot|isfield|isempty|uipopup|iserror|numdiff|nyquist|%r_rand|xmltops|%r_s_hm|isequal|umfpack|inttrap|obscont|%r_simp|%r_size|%p_prod|isdigit|interp1|%r_tril|%r_triu|%p_part|oct2dec|var2vec|isascii|%r_varn|inttype|vec2var|waitbar|warning|ind2sub|whereis|h5write|write4b|h5mount|%s_1_hm|h5label|%s_2_hm|xarrows|%s_3_hm|xchange|%s_4_hm|h5isSet|%i_diag|h5isRef|%s_a_hm|h5group|%s_a_ip|h5flush|%p_o_sp|h5close|%s_a_sp|gettext|htrianr|hilbert|hex2dec|xfpolys|getdate|harmean|gammaln|%s_c_sp|filesep|fileext|xmlDump|xmlName|%s_d_sp|xmlRead|fadj2sp|geomean|penlaur|permute|%s_f_sp|execstr|xstring|fullrfk|%p_m_hm|playsnd|fstabst|pmodulo|pol2des|%s_i_ce|pol2str|%s_i_hm|polfact|frep2tf|apropos|profile|qpsolve|%s_i_sp|quaskro|%s_i_st|rafiter|%s_k_hm|readxls|regress|%s_k_sp|flipdim|%s_l_hm|editvar|repfreq|%0_i_st|%3d_i_h|%_gsort|%s_l_sp|%_rlist|dsearch|%s_m_hm|findBDK|%s_m_ip|drawnow|factors|%b_diag|riccati|%s_n_hm|routh_t|rowcomp|dlgamma|samplef|%s_n_st|%s_o_hm|entropy|ell1mag|dispbpt|%b_i_ce|%s_o_st|%i_maxi|sci2exp|delmenu|scitest|%s_q_hm|dllinfo|%b_i_hm|dirname|%s_q_sp|%b_i_sp|detrend|%p_i_st|%b_i_st|derivat|setdiff|%s_r_sp|%b_n_hm|%s_s_hm|%b_o_hm|%s_s_ip|%b_prod|%b_tril|%s_s_sp|%s_simp|dec2oct|dec2hex|dec2bin|intppty|datevec|%s_x_hm|datenum|datafit|%b_triu|spantwo|%s_y_sp|spzeros|cumprod|%s_z_sp|squeeze|ssprint|csvRead|%sp_and|%sp_c_s|%p_i_hm|cshep2d|%sp_cos|%p_i_ce|strange|%sp_d_s|%c_diag|%sp_det|strcmpi|%i_mini|%sp_exp|%sp_f_s|contrss|%c_i_ce|%c_i_hm|cond2sp|%sp_i_h|%sp_i_s|sub2ind|complex|%sp_int|%sp_inv|%sp_k_s|%c_i_st|%sp_l_s|%c_n_st|%mc_i_s|%sp_max|%sp_min|%mc_i_h|colcomp|%sp_p_s|sysconv|%sp_q_s|%c_o_st|%sp_r_s|%lt_i_s|%c_ones|%sp_s_s|cmoment|%sp_sin|cmndred|%l_o_st|%sp_sum|cmb_lin|cls2dls|%sp_y_s|sysdiag|%sp_z_s|%c_rand|%c_tril|%l_n_st|chsolve|%c_triu|sysfact|%ce_i_s|syssize|systmat|%l_i_st|convstr|cellstr|%i_mput|%ip_s_s|%i_prod|%ip_m_s|%spb_or|%ip_a_s|ccontrg|%choose|%i_sign|%h_i_st|%hm_1_s|%i_tril|%hm_2_s|%st_i_b|%st_i_c|buttmag|%st_i_h|%st_i_i|%i_triu|%hm_3_s|%hm_4_s|%st_i_p|%st_i_r|%st_i_s|bloc2ss|%sp_a_s|Matplot|callblk|%st_n_c|%st_n_l|%hm_a_r|%st_n_p|%st_n_s|%st_o_c|%st_o_l|bin2dec|%st_o_p|%st_o_s|time_id|xcosPal|%hm_a_s|balreal|with_tk|auwrite|augment|%hm_abs|%hm_and|%i_i_st|%hm_cos|%hm_d_s|%i_i_hm|%hm_exp|%hm_eye|%hm_i_b|%i_i_ce|%hm_i_h|%hm_i_i|%hm_i_p|winlist|%hm_i_r|%hm_i_s|%hm_int|%hm_j_s|%hm_k_s|weekday|%hm_log|wcenter|%hm_m_p|wavread|besselh|besseli|besselj|%hm_m_r|%hm_m_s|%hm_max|%hm_min|%hm_n_b|%hm_n_c|%hm_n_i|%hm_n_p|%hm_n_s|%hm_o_b|analyze|%hm_o_c|%hm_o_i|%hm_o_p|%hm_o_s|arma2ss|blkslvi|blkfc1i|%hm_r_s|%hm_s_r|arsimul|%hm_s_s|%hm_sin|besselk|%hm_sum|bessely|%hm_x_p|trzeros|pencost|bezout|%i_1_s|asinhm|typeof|unique|%i_2_s|%i_3_s|%i_4_s|bfinit|armax1|trfmod|%hm_or|unix_g|unix_s|atanhm|bool2s|arma2p|unix_w|unix_x|unpack|analpf|%i_a_i|aff2ab|adj2sp|%i_a_s|%i_and|%i_b_s|%i_d_i|%i_d_s|unwrap|banner|acoshm|balanc|wiener|wigner|%i_fft|window|%i_g_i|%i_gcd|%i_h_i|NDcost|%i_i_h|G_make|c_link|%i_i_i|%i_i_s|%i_j_i|%xls_p|%xls_e|auread|%i_j_s|%i_l_s|%i_lcm|%i_m_i|tf2des|%i_m_s|%i_n_s|bitand|bitcmp|bitget|%i_o_s|bitset|bitxor|cdfbet|%i_p_i|cdfbin|%i_p_s|%i_q_s|cdfchi|%i_r_i|cdfchn|%i_r_s|bvodeS|%i_s_i|%i_s_s|cdffnc|%i_sum|calerf|calfrq|cdfgam|cdfnbn|cdfnor|%dir_p|%i_x_i|%i_x_s|cdfpoi|champ1|%l_i_h|center|%l_i_s|cfspec|%l_n_c|system|%l_n_l|%spb_e|syslin|%l_n_m|%l_n_p|chepol|chfact|%l_n_s|%l_o_c|%l_o_l|%l_o_m|%l_o_p|%l_o_s|%lss_e|%lss_s|%lss_t|%m_n_l|%m_o_l|svplot|%sp_or|%c_o_l|%mps_p|%c_n_l|%msp_e|%msp_p|%c_i_s|%msp_t|%p_a_r|%c_i_r|%p_c_r|%c_i_h|%p_d_p|%c_i_c|%c_f_s|%p_d_r|struct|%c_eye|%p_d_s|convol|%p_det|copfac|correl|%p_f_r|%p_i_h|stdevf|%p_i_p|stabil|ctree2|ctree3|ctree4|ssrand|resume|%c_b_s|%c_b_c|%c_a_c|ss2des|srfaur|%b_x_s|%i_min|%s_z_r|sqroot|%s_z_p|sprand|cspect|%b_x_b|cumsum|%s_y_r|%s_y_p|sp2adj|%s_x_r|smooth|%s_x_i|%s_x_b|sm2des|%s_v_s|dawson|%s_v_r|%s_v_p|%p_i_r|%s_s_r|%b_sum|%b_s_s|%b_s_b|%b_r_s|%b_r_b|%p_i_s|%b_p_s|%s_s_i|%s_s_b|%b_m_s|%b_m_b|%s_r_s|%s_r_r|%b_l_s|des2ss|des2tf|%b_l_b|%s_r_p|determ|degree|%s_r_i|%s_r_b|dhnorm|delbpt|%b_i_s|delete|%s_q_r|%s_q_p|%s_q_i|%s_pow|dsimul|%b_i_h|%s_p_i|%s_p_b|%s_o_r|editor|%b_i_b|%p_inv|%s_o_l|%b_h_s|%s_o_i|eomday|%s_n_r|sample|%p_j_s|dnaupd|equil1|erfinv|dneupd|double|%s_n_l|%s_n_i|%b_g_s|%b_f_s|%p_k_p|factor|%s_m_r|%p_k_r|faurre|%p_k_s|driver|%b_c_s|%b_a_s|%b_a_b|filter|dsaupd|findAC|%s_m_i|%s_m_b|dseupd|%_save|%s_lcm|repmat|%s_l_s|%s_l_r|%s_l_p|%p_l_p|%s_l_i|ereduc|%s_l_b|remezb|%s_k_r|select|reglin|recons|%s_k_p|%s_j_i|%p_l_r|%s_i_s|elseif|pspect|psmall|projsl|%s_i_r|primes|%s_i_p|prbs_a|zneupd|%p_l_s|freson|%s_i_i|%s_i_h|znaupd|%s_i_c|%s_i_b|fspecg|%s_h_s|%s_h_b|ftuneq|xtitle|fullrf|%s_gcd|%s_g_s|%s_g_b|exists|gamitg|%s_f_r|perctl|%p_m_r|xs2svg|return|xs2ppm|xs2png|xs2pdf|xs2jpg|xs2gif|genlib|xs2eps|%p_n_l|xs2emf|xs2bmp|xrects|pencan|xpolys|pen2ea|xpause|parrot|%s_f_b|%i_max|figure|%s_d_r|%p_y_s|%s_d_p|givens|glever|%s_d_i|%s_d_b|gschur|findBD|format|h2norm|fsolve|fstair|xmlDTD|h_norm|xlfont|funptr|%s_c_r|geom3d|%p_n_r|getURL|%p_o_l|xfrect|%s_c_b|hermit|%p_o_r|getenv|%s_b_s|getmd5|horner|xfpoly|getpid|%s_b_i|xfarcs|%s_and|global|h5attr|%s_a_r|h5dump|%p_p_s|%s_a_i|iirmod|%s_a_b|%s_4_i|xclick|%s_3_i|%s_2_i|%s_1_i|%r_z_s|%r_z_r|h5open|h5read|winsid|im_inv|%r_z_p|%r_y_s|inpnvi|interp|%r_y_r|%r_y_p|%r_x_s|%r_x_r|%r_x_p|%r_v_s|%r_v_r|%r_v_p|intdec|obsvss|%i_abs|unzoom|%r_sum|%r_s_s|unglue|%r_s_r|%r_s_p|%p_q_p|%r_r_s|%r_r_r|%r_r_p|uiwait|%p_q_r|isfile|iscell|uint32|uint16|%r_q_s|%r_q_r|%r_q_p|uimenu|isreal|jarray|%r_p_s|%_load|%r_o_s|tr_zer|%r_o_r|%r_o_p|%p_q_s|%r_n_s|%r_n_r|kernel|length|linmeq|%r_n_p|%p_r_p|%p_r_r|tokens|lstcat|%r_m_s|%r_m_r|%r_m_p|lufact|nehari|ndgrid|nansum|tohome|%p_r_s|matrix|lin2mu|lincos|nanmin|mclose|%r_l_s|nanmax|merror|ta2lpd|syredi|%r_l_r|%r_l_p|%p_s_r|mu2lin|%r_k_s|strtok|strtod|strstr|%r_k_r|%r_k_p|%r_j_s|strspn|mtlb_t|mscanf|strrev|%r_inv|%r_i_s|mucomp|%r_i_r|%r_i_p|%r_f_s|%r_f_r|string|newest|%r_f_p|%p_sum|strcmp|strchr|strcat|%r_eye|newfun|notify|median|%_eigs|mtlb_s|%r_det|opentk|%r_d_s|%r_d_r|ordmmd|%r_d_p|modulo|moment|%p_v_p|%p_v_r|spones|%p_v_s|mtlb_0|mtlb_a|%r_c_s|%r_c_r|plot2d|%r_c_p|%r_a_s|spchol|sparse|sorder|%r_a_r|%r_a_p|plot3d|%p_x_r|pppdiv|predef|sident|sfinit|printf|%p_y_p|setenv|mtlb_e|setbpt|prompt|%p_y_r|sctree|zpbutt|mtlb_l|%p_z_s|%p_z_r|rankqr|read4b|mtlb_i|%p_z_p|regexp|residu|blanks|%b_d_s|xpoly|remez|rlist|zpch2|roots|readb|round|zpch1|zgrid|rdivf|rcond|%s_or|rtitr|%sp_e|%ip_p|%st_6|%st_e|%i_or|schur|about|%st_p|sfact|print|amell|xcorr|%st_t|ascii|abinv|acosd|slash|sleep|acosh|spget|splin|acosm|acotd|bdiag|mrfit|mkdir|minss|acoth|optim|acscd|acsch|aplat|unobs|odedc|arhnk|meanf|armac|armax|gfare|asecd|union|asech|asind|mtell|asinh|mseek|asinm|%hm_s|%hm_p|mputl|atand|atanh|trans|mopen|trace|mlist|atanm|log10|mgetl|bvode|mgeti|%hm_e|bilin|tf2ss|bitor|black|timer|linfn|%hm_5|bstap|tlist|cainv|canon|levin|luget|champ|ndims|chdir|clean|ludel|clear|ltitr|coeff|color|lattp|contr|log1p|conv2|lattn|%ce_t|tanhm|krac2|tabul|lines|light|nfreq|chart|%ce_p|kpure|ldivf|%ce_6|clock|jwrap|coffg|coshm|stdev|cothm|covar|jdeff|jcast|isrow|ss2tf|isnum|ss2ss|isinf|cross|uint8|%bicg|ulink|numer|invrs|sqrtm|isdir|speye|daskr|isdef|dasrt|dassl|input|sound|solve|signm|sm2ss|dbphi|sinhm|int3d|int32|int2d|int16|sincd|where|imult|debug|sgrid|denom|sensi|sdiff|delip|dhinf|diary|writb|write|scanf|samwr|epred|eqfir|xarcs|eqiir|equil|iirlp|h5get|etime|evans|evstr|xfarc|rmdir|gsort|ffilt|grand|findR|%ar_p|glist|findm|while|getos|histc|getio|pause|range|xgrid|quart|xinit|erfcx|gamma|catch|break|h_inf|error|fromc|frexp|abort|frfit|gtild|floor|gspec|polar|group|gmres|frmag|xmlNs|zeros|fspec|ftest|feval|zpell|gcare|perms|xsegs|xs2ps|xname|xrect|isnan|%ce_e|mget|real|pbig|expm|pack|rpem|perl|%pcg|getd|read|exit|pfss|%r_0|xset|%r_e|pinv|%r_p|exec|plzr|orth|fftw|file|find|fort|freq|h_cl|full|erfi|case|proj|halt|hank|%r_s|else|%r_t|%s_5|%s_e|xcov|help|erfc|xget|rank|save|%i_p|hilb|quit|then|flts|rand|%p_e|hrmt|prod|idct|idst|glue|%asn|fft2|grep|%b_e|ifft|h5cp|acos|eval|xend|xdel|xcos|rref|addf|h5ls|xarc|eigs|disp|h5mv|edit|h5rm|diag|sign|simp|dtsi|hess|dscr|hinf|ppol|secd|sech|pdiv|diff|host|detr|deff|ieee|imag|impl|poly|abcd|%i_e|sinc|whos|sind|sinh|int8|sinm|what|intg|smga|date|varn|asin|intc|damp|user|unix|atan|size|intl|csim|csgn|csch|invr|cscd|wfir|spec|srkf|null|mtlb|ricc|sskf|type|acot|triu|coth|cotg|cotd|cosm|tril|jmat|cosh|cosd|%c_e|conv|cond|part|kalm|sylm|sylv|coff|kron|ldiv|asec|nlev|beep|char|link|tand|tanh|list|tanm|acsc|corr|copy|load|mfft|sqrt|conj|comp|mese|ones|arl2|leqe|norm|chol|leqr|%cgs|mean|ceil|cdft|cell|lyap|casc|mulf|beta|cdff|logm|bode|linf|meof|mput|log2|bilt|move|call|mode|subf|h5ln|argn|toc|min|tic|svd|tan|pca|max|lqe|lqg|lin|lqr|gcd|lft|cat|mad|lev|nnz|clc|eye|ode|lcm|lcf|lsq|log|cos|exp|lib|ver|msd|sva|cov|now|iqr|csc|czt|dae|inv|int|rat|dcf|sin|ddp|dct|dir|and|sec|det|who|pcg|iir|abs|dst|set|fec|phc|pwd|fix|qld|fft|try|erf|sum|end|for|%sn|acf|get|qmr|%k|do|qr|if|_d|or|lu|ls|cd|_)\b">
23 <token type="NameBuiltin"/>
24 </rule>
25 <rule pattern="(differential_equationlib|compatibility_functilib|elementary_functionslib|simulated_annealinglib|genetic_algorithmslib|development_toolslib|signal_processinglib|special_functionslib|external_objectslib|modules_managerlib|data_structureslib|linear_algebralib|interpolationlib|output_streamlib|dynamic_linklib|optimizationlib|scicos_utilslib|optimsimplexlib|spreadsheetlib|scicos_autolib|preferenceslib|polynomialslib|overloadinglib|%toolboxes_dir|neldermeadlib|%modalWarning|parameterslib|demo_toolslib|statisticslib|functionslib|helptoolslib|optimbaselib|scinoteslib|%toolboxes|arnoldilib|integerlib|umfpacklib|randliblib|sparselib|assertlib|fileiolib|stringlib|tclscilib|soundlib|m2scilib|cacsdlib|atomslib|matiolib|timelib|SCIHOME|xcoslib|corelib|TMPDIR|jvoid|iolib|evoid|enull|%fftw|jnull|%nan|home|%eps|%gui|%inf|%io|%tk|SCI|PWD|%pi|fd|%z|%i|%s|%f|%t|%e|%T|%F|\$)\b">
26 <token type="NameConstant"/>
27 </rule>
28 <rule pattern="-|==|~=|&lt;|&gt;|&lt;=|&gt;=|&amp;&amp;|&amp;|~|\|\|?">
29 <token type="Operator"/>
30 </rule>
31 <rule pattern="\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="[\[\](){}@.,=:;]">
35 <token type="Punctuation"/>
36 </rule>
37 <rule pattern="&#34;[^&#34;]*&#34;">
38 <token type="LiteralString"/>
39 </rule>
40 <rule pattern="(?&lt;=[\w)\].])\&#39;+">
41 <token type="Operator"/>
42 </rule>
43 <rule pattern="(?&lt;![\w)\].])\&#39;">
44 <token type="LiteralString"/>
45 <push state="string"/>
46 </rule>
47 <rule pattern="(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?">
48 <token type="LiteralNumberFloat"/>
49 </rule>
50 <rule pattern="\d+[eEf][+-]?[0-9]+">
51 <token type="LiteralNumberFloat"/>
52 </rule>
53 <rule pattern="\d+">
54 <token type="LiteralNumberInteger"/>
55 </rule>
56 <rule pattern="[a-zA-Z_]\w*">
57 <token type="Name"/>
58 </rule>
59 <rule pattern=".">
60 <token type="Text"/>
61 </rule>
62 </state>
63 <state name="string">
64 <rule pattern="[^&#39;]*&#39;">
65 <token type="LiteralString"/>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern=".">
69 <token type="LiteralString"/>
70 <pop depth="1"/>
71 </rule>
72 </state>
73 <state name="deffunc">
74 <rule pattern="(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)">
75 <bygroups>
76 <token type="TextWhitespace"/>
77 <token type="Text"/>
78 <token type="TextWhitespace"/>
79 <token type="Punctuation"/>
80 <token type="TextWhitespace"/>
81 <token type="NameFunction"/>
82 <token type="Punctuation"/>
83 <token type="Text"/>
84 <token type="Punctuation"/>
85 <token type="TextWhitespace"/>
86 </bygroups>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="(\s*)([a-zA-Z_]\w*)">
90 <bygroups>
91 <token type="Text"/>
92 <token type="NameFunction"/>
93 </bygroups>
94 <pop depth="1"/>
95 </rule>
96 </state>
97 </rules>
98</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml
new file mode 100644
index 0000000..ee060fc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/scss.xml
@@ -0,0 +1,373 @@
1<lexer>
2 <config>
3 <name>SCSS</name>
4 <alias>scss</alias>
5 <filename>*.scss</filename>
6 <mime_type>text/x-scss</mime_type>
7 <case_insensitive>true</case_insensitive>
8 <dot_all>true</dot_all>
9 <not_multiline>true</not_multiline>
10 </config>
11 <rules>
12 <state name="string-double">
13 <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
14 <token type="LiteralStringDouble"/>
15 </rule>
16 <rule pattern="#\{">
17 <token type="LiteralStringInterpol"/>
18 <push state="interpolation"/>
19 </rule>
20 <rule pattern="&#34;">
21 <token type="LiteralStringDouble"/>
22 <pop depth="1"/>
23 </rule>
24 </state>
25 <state name="id">
26 <rule pattern="[\w-]+">
27 <token type="NameNamespace"/>
28 </rule>
29 <rule pattern="#\{">
30 <token type="LiteralStringInterpol"/>
31 <push state="interpolation"/>
32 </rule>
33 <rule>
34 <pop depth="1"/>
35 </rule>
36 </state>
37 <state name="value">
38 <rule pattern="[ \t]+">
39 <token type="Text"/>
40 </rule>
41 <rule pattern="!(important|default|global)">
42 <token type="Keyword"/>
43 </rule>
44 <rule pattern="[!$][\w-]+">
45 <token type="NameVariable"/>
46 </rule>
47 <rule pattern="url\(">
48 <token type="LiteralStringOther"/>
49 <push state="string-url"/>
50 </rule>
51 <rule pattern="[a-z_-][\w-]*(?=\()">
52 <token type="NameFunction"/>
53 </rule>
54 <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-bottom-left-radius|border-start-start-radius|border-inline-start-color|animation-iteration-count|border-inline-start-width|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|spatial-navigation-action|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|border-inline-end-width|border-top-right-radius|text-underline-position|scroll-margin-block-end|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|background-attachment|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|font-variant-position|shape-image-threshold|grid-template-columns|border-end-end-radius|font-feature-settings|scroll-padding-bottom|font-variant-numeric|initial-letter-align|text-combine-upright|box-decoration-break|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|text-decoration-line|scroll-margin-block|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|backface-visibility|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-right-width|perspective-origin|inset-inline-start|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-block-width|border-right-style|image-orientation|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|background-origin|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|scroll-behavior|inset-block-end|border-collapse|grid-column-end|overflow-inline|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|padding-bottom|flex-direction|padding-inline|font-synthesis|grid-auto-flow|vertical-align|outline-offset|text-rendering|grid-auto-rows|grid-row-start|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|table-layout|column-width|writing-mode|font-variant|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|column-count|column-span|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|empty-cells|counter-set|mask-border|overflow-y|string-set|align-self|text-align|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|mask-image|background|border-top|visibility|overflow-x|column-gap|font-style|box-shadow|margin-top|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|transform|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|word-wrap|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|z-index|row-gap|content|opacity|padding|display|outline|columns|hyphens|orphans|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|width|inset|clear|color|right|float|scale|order|left|font|flex|mask|page|grid|clip|all|gap|src|top)(?=\s*:)">
55 <token type="NameAttribute"/>
56 </rule>
57 <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
58 <token type="NameAttribute"/>
59 </rule>
60 <rule pattern="\b(no-discretionary-ligatures|no-historical-ligatures|discretionary-ligatures|simp-chinese-informal|trad-chinese-informal|korean-hanja-informal|historical-ligatures|korean-hangul-formal|decimal-leading-zero|korean-hanja-formal|ruby-text-container|ruby-base-container|no-common-ligatures|trad-chinese-formal|simp-chinese-formal|cjk-earthly-branch|geometricPrecision|optimizeLegibility|table-header-group|table-footer-group|diagonal-fractions|table-column-group|proportional-width|disclosure-closed|stacked-fractions|japanese-informal|alternate-reverse|cjk-heavenly-stem|proportional-nums|slider-horizontal|ideograph-numeric|common-ligatures|isolate-override|ethiopic-numeric|ideograph-alpha|table-row-group|all-petite-caps|cjk-ideographic|inter-character|ultra-condensed|scroll-position|extra-condensed|japanese-formal|disclosure-open|menulist-button|upper-armenian|lower-armenian|extra-expanded|semi-condensed|space-adjacent|all-small-caps|discard-before|katakana-iroha|full-size-kana|no-close-quote|ultra-expanded|hiragana-iroha|target-counter|column-reverse|spelling-error|grammar-error|optimizeSpeed|discard-after|no-contextual|trim-adjacent|table-caption|square-button|semi-expanded|border-bottom|ui-sans-serif|double-circle|vertical-text|outside-shape|horizontal-tb|no-open-quote|space-between|small-caption|oldstyle-nums|bidi-override|progress-bar|match-parent|line-through|space-around|inline-table|inline-block|high-quality|space-evenly|table-column|currentColor|arabic-indic|ui-monospace|rotate-right|inline-start|avoid-region|avoid-column|match-source|manipulation|tabular-nums|context-menu|slashed-zero|cubic-bezier|titling-caps|wrap-reverse|color-dodge|sideways-lr|no-compress|space-first|searchfield|lining-nums|fit-content|ease-in-out|punctuation|min-content|petite-caps|crisp-edges|push-button|translate3d|row-reverse|perspective|max-content|nesw-resize|not-allowed|preserve-3d|space-start|drop-shadow|padding-box|text-bottom|rotate-left|block-start|inline-grid|inline-flex|upper-latin|upper-alpha|lower-latin|auto‑flow|lower-alpha|message-box|lower-greek|upper-roman|lower-roman|vertical-rl|traditional|justify-all|close-quote|content-box|vertical-lr|cjk-decimal|transparent|sideways-rl|target-text|balance-all|ideographic|nwse-resize|saturation|flex-start|open-quote|from-image|avoid-flex|avoid-line|stroke-box|ui-rounded|margin-box|self-start|inline-end|devanagari|avoid-page|status-bar|all-scroll|col-resize|row-resize|translateZ|translateY|translateX|hue-rotate|small-caps|brightness|step-start|capitalize|trim-start|trim-inner|sans-serif|scale-down|contextual|break-word|horizontal|inter-word|color-burn|cross-fade|hard-light|soft-light|border-box|table-cell|luminosity|full-width|difference|simplified|alphabetic|mandatory|exclusion|from-font|table-row|flow-root|underline|image-set|proximity|ruby-base|ruby-text|list-item|monospace|intersect|ns-resize|textfield|ew-resize|uppercase|sw-resize|se-resize|nw-resize|lowercase|grayscale|ne-resize|pan-right|translate|backwards|available|luminance|condensed|alternate|mongolian|plaintext|malayalam|cambodian|transform|block-end|force-end|break-all|crosshair|allow-end|no-repeat|pixelated|system-ui|xxx-large|space-end|w-resize|georgian|flex-end|baseline|gujarati|fangsong|ui-serif|fill-box|keep-all|view-box|xx-small|gurmukhi|pre-line|pre-wrap|contents|xx-large|text-top|hiragana|self-end|katakana|collapse|separate|anywhere|saturate|expanded|subtract|progress|repeat-x|rotate3d|repeat-y|contrast|relative|forwards|infinite|absolute|matrix3d|vertical|overline|pan-down|pan-left|step-end|triangle|ease-out|textarea|sideways|checkbox|menulist|ellipsis|trim-end|grabbing|multiply|zoom-out|n-resize|s-resize|armenian|ordinal|zoom-in|visible|overlay|no-drop|listbox|unicode|lighten|ease-in|lighter|element|running|justify|display|fantasy|unicase|subgrid|reverse|upright|stretch|rotateX|current|exclude|rotateY|pointer|contain|opacity|default|no-clip|in-flow|hanging|isolate|discard|tibetan|persian|myanmar|rotateZ|content|inherit|outside|initial|kannada|smaller|decimal|symbols|x-large|balance|x-small|economy|caption|minimum|maximum|polygon|ellipse|cursive|bengali|masonry|static|region|column|run-in|inline|middle|circle|larger|button|square|pretty|always|hidden|rotate|inside|scroll|screen|matrix|create|unsafe|center|paused|nowrap|medium|darken|sesame|strict|outset|pan-up|bolder|telugu|scaleX|linear|scaleY|groove|double|scaleZ|dashed|minmax|legacy|hebrew|bottom|dotted|leader|normal|stable|weight|smooth|filled|italic|revert|manual|repeat|sticky|invert|table|round|space|alias|jis78|dense|sepia|emoji|auto;|clear|skewX|cover|right|skewY|style|light|unset|force|alpha|large|focus|solid|ridge|white|embed|tamil|blink|first|scale|radio|color|jis83|under|block|jis90|inset|start|pan-y|oriya|super|loose|mixed|thick|slice|pan-x|khmer|width|local|fixed|clone|avoid|serif|exact|recto|meter|small|verso|jis04|image|flow|flex|grid|ruby|wrap|ease|safe|grab|move|icon|bold|last|open|over|wavy|show|hide|both|url;|none|blur|text|line|menu|copy|dark|left|math|cell|clip|fill|skew|wait|help|flat|snap|keep|thai|thin|disc|path|page|attr|rect|auto|row|all|rtl|end|ltr|sub|hue|dot|url|top|lao|add|ray|pre|x|y|z)\b">
61 <token type="NameEntity"/>
62 </rule>
63 <rule pattern="(?i)\b(LightGoldenRodYellow|MediumSpringGreen|MediumAquaMarine|MediumSlateBlue|MediumVioletRed|MediumTurquoise|LightSlateGray|LightSlateGrey|MediumSeaGreen|BlanchedAlmond|LightSteelBlue|CornflowerBlue|DarkOliveGreen|DarkGoldenRod|PaleGoldenRod|PaleTurquoise|LavenderBlush|RebeccaPurple|DarkSlateGray|DarkSlateGrey|LightSeaGreen|PaleVioletRed|DarkTurquoise|DarkSlateBlue|AntiqueWhite|DarkSeaGreen|LightSkyBlue|MediumOrchid|LemonChiffon|MediumPurple|MidnightBlue|GreenYellow|DarkMagenta|LightSalmon|LightYellow|DeepSkyBlue|NavajoWhite|SaddleBrown|SpringGreen|ForestGreen|FloralWhite|YellowGreen|PapayaWhip|Aquamarine|DodgerBlue|Chartreuse|BlueViolet|DarkViolet|DarkOrange|LightGreen|GhostWhite|WhiteSmoke|DarkOrchid|MediumBlue|PowderBlue|LightCoral|DarkSalmon|SandyBrown|IndianRed|RoyalBlue|SteelBlue|AliceBlue|SlateGrey|MistyRose|Turquoise|LawnGreen|MintCream|LightBlue|SlateGray|LightCyan|GoldenRod|LightGray|LightGrey|Gainsboro|OliveDrab|Chocolate|DarkGreen|PeachPuff|RosyBrown|BurlyWood|FireBrick|SlateBlue|LightPink|LimeGreen|OrangeRed|CadetBlue|DarkKhaki|PaleGreen|HoneyDew|SeaShell|SeaGreen|DeepPink|Cornsilk|DarkBlue|DarkCyan|DarkGray|DarkGrey|Moccasin|Lavender|DarkRed|HotPink|SkyBlue|OldLace|Thistle|Fuchsia|Magenta|DimGrey|Crimson|DimGray|Tomato|Bisque|Silver|Orchid|Orange|Yellow|Sienna|Maroon|Salmon|Purple|Indigo|Violet|Green|Beige|Azure|Olive|Ivory|Coral|Wheat|White|Linen|Brown|Khaki|Black|Cyan|Blue|Aqua|Navy|Peru|Teal|Grey|Snow|Gray|Gold|Plum|Pink|Lime|Red|Tan)\b">
64 <token type="NameConstant"/>
65 </rule>
66 <rule pattern="(true|false)">
67 <token type="NamePseudo"/>
68 </rule>
69 <rule pattern="(and|or|not)">
70 <token type="OperatorWord"/>
71 </rule>
72 <rule pattern="/\*">
73 <token type="CommentMultiline"/>
74 <push state="inline-comment"/>
75 </rule>
76 <rule pattern="//[^\n]*">
77 <token type="CommentSingle"/>
78 </rule>
79 <rule pattern="\#[a-z0-9]{1,6}">
80 <token type="LiteralNumberHex"/>
81 </rule>
82 <rule pattern="(-)?(\d+)(\%|[a-z]+)?">
83 <bygroups>
84 <token type="Operator"/>
85 <token type="LiteralNumberInteger"/>
86 <token type="KeywordType"/>
87 </bygroups>
88 </rule>
89 <rule pattern="(-?)(\d*\.\d+)(\%|[a-z]+)?">
90 <bygroups>
91 <token type="Operator"/>
92 <token type="LiteralNumberFloat"/>
93 <token type="KeywordType"/>
94 </bygroups>
95 </rule>
96 <rule pattern="#\{">
97 <token type="LiteralStringInterpol"/>
98 <push state="interpolation"/>
99 </rule>
100 <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
101 <token type="Operator"/>
102 </rule>
103 <rule pattern="[\[\]()]+">
104 <token type="Punctuation"/>
105 </rule>
106 <rule pattern="&#34;">
107 <token type="LiteralStringDouble"/>
108 <push state="string-double"/>
109 </rule>
110 <rule pattern="&#39;">
111 <token type="LiteralStringSingle"/>
112 <push state="string-single"/>
113 </rule>
114 <rule pattern="[a-z_-][\w-]*">
115 <token type="Name"/>
116 </rule>
117 <rule pattern="\n">
118 <token type="Text"/>
119 </rule>
120 <rule pattern="[;{}]">
121 <token type="Punctuation"/>
122 <pop depth="1"/>
123 </rule>
124 </state>
125 <state name="inline-comment">
126 <rule pattern="(\\#|#(?=[^{])|\*(?=[^/])|[^#*])+">
127 <token type="CommentMultiline"/>
128 </rule>
129 <rule pattern="#\{">
130 <token type="LiteralStringInterpol"/>
131 <push state="interpolation"/>
132 </rule>
133 <rule pattern="\*/">
134 <token type="Comment"/>
135 <pop depth="1"/>
136 </rule>
137 </state>
138 <state name="string-single">
139 <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
140 <token type="LiteralStringSingle"/>
141 </rule>
142 <rule pattern="#\{">
143 <token type="LiteralStringInterpol"/>
144 <push state="interpolation"/>
145 </rule>
146 <rule pattern="&#39;">
147 <token type="LiteralStringSingle"/>
148 <pop depth="1"/>
149 </rule>
150 </state>
151 <state name="interpolation">
152 <rule pattern="\}">
153 <token type="LiteralStringInterpol"/>
154 <pop depth="1"/>
155 </rule>
156 <rule>
157 <include state="value"/>
158 </rule>
159 </state>
160 <state name="each">
161 <rule pattern="in">
162 <token type="OperatorWord"/>
163 </rule>
164 <rule>
165 <include state="value"/>
166 </rule>
167 </state>
168 <state name="attr">
169 <rule pattern="#\{">
170 <token type="LiteralStringInterpol"/>
171 <push state="interpolation"/>
172 </rule>
173 <rule pattern="[ \t]*:">
174 <token type="Operator"/>
175 <push state="value"/>
176 </rule>
177 <rule>
178 <pop depth="1"/>
179 </rule>
180 </state>
181 <state name="root">
182 <rule pattern="[{}()]">
183 <token type="Punctuation"/>
184 </rule>
185 <rule pattern="\s+">
186 <token type="Text"/>
187 </rule>
188 <rule pattern="//.*?\n">
189 <token type="CommentSingle"/>
190 </rule>
191 <rule pattern="/\*.*?\*/">
192 <token type="CommentMultiline"/>
193 </rule>
194 <rule pattern="@import">
195 <token type="Keyword"/>
196 <push state="value"/>
197 </rule>
198 <rule pattern="(@(?:use|forward))(\s+)([^\s;]+)(?:(\s+)(as)(\s+)(\w+|\*))?(?:(\s+)(with))?">
199 <bygroups>
200 <token type="Keyword"/>
201 <token type="Text"/>
202 <usingself state="selector"/>
203 <token type="Text"/>
204 <token type="Keyword"/>
205 <token type="Text"/>
206 <token type="NameNamespace"/>
207 <token type="Text"/>
208 <token type="Keyword"/>
209 </bygroups>
210 <push state="value"/>
211 </rule>
212 <rule pattern="@for">
213 <token type="Keyword"/>
214 <push state="for"/>
215 </rule>
216 <rule pattern="@each">
217 <token type="Keyword"/>
218 <push state="each"/>
219 </rule>
220 <rule pattern="@(debug|warn|else if|if|while|return)">
221 <token type="Keyword"/>
222 <push state="value"/>
223 </rule>
224 <rule pattern="(@(?:mixin|function))( [\w-]+)">
225 <bygroups>
226 <token type="Keyword"/>
227 <token type="NameFunction"/>
228 </bygroups>
229 <push state="value"/>
230 </rule>
231 <rule pattern="(@include)( [\w-]+)">
232 <bygroups>
233 <token type="Keyword"/>
234 <token type="NameDecorator"/>
235 </bygroups>
236 <push state="value"/>
237 </rule>
238 <rule pattern="@extend">
239 <token type="Keyword"/>
240 <push state="selector"/>
241 </rule>
242 <rule pattern="(@media)(\s+)">
243 <bygroups>
244 <token type="Keyword"/>
245 <token type="Text"/>
246 </bygroups>
247 <push state="value"/>
248 </rule>
249 <rule pattern="@[\w-]+">
250 <token type="Keyword"/>
251 <push state="selector"/>
252 </rule>
253 <rule pattern="(\$[\w-]*\w)([ \t]*:)">
254 <bygroups>
255 <token type="NameVariable"/>
256 <token type="Operator"/>
257 </bygroups>
258 <push state="value"/>
259 </rule>
260 <rule pattern="#\{">
261 <token type="LiteralStringInterpol"/>
262 <push state="interpolation"/>
263 </rule>
264 <rule pattern="\b(scroll-padding-inline-start|spatial-navigation-function|transition-timing-function|overscroll-behavior-inline|spatial-navigation-contain|border-bottom-right-radius|scroll-padding-block-start|scroll-margin-inline-start|border-inline-start-width|border-start-start-radius|border-inline-start-color|animation-iteration-count|spatial-navigation-action|animation-timing-function|text-decoration-thickness|border-inline-start-style|scroll-margin-block-start|scroll-padding-inline-end|border-bottom-left-radius|overscroll-behavior-block|scroll-margin-inline-end|border-block-start-style|border-block-start-width|scroll-padding-block-end|border-block-start-color|scroll-margin-block-end|border-top-right-radius|text-underline-position|border-inline-end-width|border-start-end-radius|border-end-start-radius|border-inline-end-style|border-inline-end-color|font-variant-east-asian|border-block-end-style|font-language-override|border-block-end-color|border-block-end-width|text-emphasis-position|border-top-left-radius|font-variant-ligatures|shape-image-threshold|overscroll-behavior-x|text-decoration-style|scroll-padding-inline|background-blend-mode|text-decoration-color|text-underline-offset|overscroll-behavior-y|border-end-end-radius|scroll-padding-bottom|grid-template-columns|font-variant-position|font-feature-settings|background-attachment|font-variant-numeric|initial-letter-align|text-combine-upright|text-decoration-line|overflow-clip-margin|scroll-padding-right|padding-inline-start|scroll-margin-bottom|text-decoration-skip|scroll-margin-inline|scroll-padding-block|animation-play-state|box-decoration-break|backface-visibility|border-image-outset|font-optical-sizing|animation-fill-mode|margin-inline-start|border-bottom-color|transition-property|border-inline-width|animation-direction|grid-template-areas|forced-color-adjust|border-inline-style|border-inline-start|text-emphasis-style|scroll-padding-left|border-bottom-width|scroll-margin-right|border-inline-color|overscroll-behavior|list-style-position|hanging-punctuation|background-position|border-bottom-style|border-image-source|transition-duration|initial-letter-wrap|padding-block-start|border-image-repeat|scroll-margin-block|font-variant-emoji|margin-block-start|border-block-start|border-block-style|padding-inline-end|border-block-width|perspective-origin|border-right-style|border-right-color|border-block-color|mask-border-repeat|mask-border-source|border-image-width|scroll-padding-top|animation-duration|border-image-slice|grid-template-rows|content-visibility|scroll-margin-left|border-right-width|inset-inline-start|background-origin|scroll-snap-align|page-break-inside|column-rule-width|mask-border-width|column-rule-style|mask-border-slice|column-rule-color|grid-auto-columns|page-break-before|background-repeat|counter-increment|font-variant-caps|padding-block-end|border-inline-end|grid-column-start|border-left-width|border-left-style|border-left-color|scroll-margin-top|inset-block-start|margin-inline-end|image-orientation|mask-border-mode|scroll-snap-stop|scroll-snap-type|scrollbar-gutter|font-size-adjust|transform-origin|page-orientation|image-resolution|margin-block-end|footnote-display|page-break-after|border-block-end|text-group-align|text-orientation|transition-delay|background-image|text-size-adjust|border-top-width|border-top-style|list-style-image|border-top-color|background-color|inset-inline-end|offset-distance|background-size|background-clip|list-style-type|footnote-policy|text-decoration|scrollbar-color|scrollbar-width|text-align-last|image-rendering|animation-delay|transform-style|object-position|offset-position|text-space-trim|justify-content|overflow-anchor|overflow-inline|inset-block-end|border-collapse|grid-column-end|scroll-behavior|border-spacing|scroll-padding|text-align-all|pointer-events|max-block-size|text-transform|letter-spacing|lighting-color|mask-composite|initial-letter|mix-blend-mode|overflow-block|animation-name|grid-row-start|flex-direction|padding-inline|grid-auto-rows|grid-auto-flow|vertical-align|outline-offset|text-rendering|font-synthesis|padding-bottom|margin-inline|padding-block|offset-rotate|text-overflow|border-inline|margin-bottom|offset-anchor|scroll-margin|outline-style|border-bottom|shape-outside|outline-width|shape-padding|text-emphasis|align-content|grid-template|border-radius|transform-box|overflow-wrap|justify-items|mask-position|place-content|inline-sizing|counter-reset|padding-right|outline-color|writing-mode|column-width|column-count|table-layout|touch-action|padding-left|color-adjust|word-spacing|text-justify|shape-margin|caption-side|break-inside|shape-inside|margin-right|break-before|font-kerning|font-stretch|border-width|margin-break|text-spacing|border-style|aspect-ratio|margin-block|grid-row-end|border-block|line-padding|border-right|wrap-through|border-color|border-image|justify-self|inset-inline|unicode-bidi|font-variant|empty-cells|border-left|white-space|wrap-inside|grid-column|will-change|text-shadow|offset-path|user-select|inline-size|break-after|place-items|caret-color|text-indent|padding-top|inset-block|wrap-before|font-weight|flex-shrink|line-height|perspective|column-fill|mask-repeat|align-items|margin-left|mask-origin|margin-trim|column-rule|font-family|column-span|counter-set|mask-border|mask-image|string-set|align-self|margin-top|place-self|list-style|wrap-after|block-size|word-break|line-clamp|line-break|flex-basis|max-height|min-height|object-fit|appearance|box-sizing|transition|box-shadow|background|border-top|visibility|overflow-x|column-gap|font-style|overflow-y|text-align|mask-size|line-snap|flex-wrap|nav-right|isolation|flex-grow|flex-flow|translate|line-grid|text-wrap|wrap-flow|min-width|max-width|direction|clip-path|word-wrap|mask-clip|max-lines|mask-type|grid-area|animation|mask-mode|transform|font-size|nav-down|position|overflow|grid-row|tab-size|nav-left|display|row-gap|content|opacity|padding|orphans|outline|columns|hyphens|z-index|margin|border|rotate|filter|resize|quotes|bottom|height|offset|nav-up|cursor|widows|color|inset|order|scale|right|float|width|clear|font|flex|left|mask|clip|page|grid|gap|src|top|all)(?=\s*:)">
265 <token type="NameAttribute"/>
266 <push state="attr"/>
267 </rule>
268 <rule pattern="(?&lt;!:\s*)[^ \t:=&#34;\[;(),.]+(?=[ \t]*:(?:#{|[^{])+?[;,])">
269 <token type="NameAttribute"/>
270 <push state="attr"/>
271 </rule>
272 <rule>
273 <push state="selector"/>
274 </rule>
275 </state>
276 <state name="for">
277 <rule pattern="(from|to|through)">
278 <token type="OperatorWord"/>
279 </rule>
280 <rule>
281 <include state="value"/>
282 </rule>
283 </state>
284 <state name="class">
285 <rule pattern="[\w-]+">
286 <token type="NameClass"/>
287 </rule>
288 <rule pattern="#\{">
289 <token type="LiteralStringInterpol"/>
290 <push state="interpolation"/>
291 </rule>
292 <rule>
293 <pop depth="1"/>
294 </rule>
295 </state>
296 <state name="selector">
297 <rule pattern="[ \t]+">
298 <token type="Text"/>
299 </rule>
300 <rule pattern="\:">
301 <token type="NameDecorator"/>
302 <push state="pseudo-class"/>
303 </rule>
304 <rule pattern="\.">
305 <token type="NameClass"/>
306 <push state="class"/>
307 </rule>
308 <rule pattern="#\{">
309 <token type="LiteralStringInterpol"/>
310 <push state="interpolation"/>
311 </rule>
312 <rule pattern="\#">
313 <token type="NameNamespace"/>
314 <push state="id"/>
315 </rule>
316 <rule pattern="&amp;">
317 <token type="Keyword"/>
318 </rule>
319 <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:,./?-]">
320 <token type="Operator"/>
321 </rule>
322 <rule pattern="(%)([\w-]+)">
323 <bygroups>
324 <token type="Operator"/>
325 <token type="NameClass"/>
326 </bygroups>
327 </rule>
328 <rule pattern="&#34;">
329 <token type="LiteralStringDouble"/>
330 <push state="string-double"/>
331 </rule>
332 <rule pattern="&#39;">
333 <token type="LiteralStringSingle"/>
334 <push state="string-single"/>
335 </rule>
336 <rule pattern="\n">
337 <token type="Text"/>
338 </rule>
339 <rule pattern="[;{}]">
340 <token type="Punctuation"/>
341 <pop depth="1"/>
342 </rule>
343 <rule pattern="[\w-]+">
344 <token type="NameTag"/>
345 </rule>
346 </state>
347 <state name="string-url">
348 <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
349 <token type="LiteralStringOther"/>
350 </rule>
351 <rule pattern="#\{">
352 <token type="LiteralStringInterpol"/>
353 <push state="interpolation"/>
354 </rule>
355 <rule pattern="\)">
356 <token type="LiteralStringOther"/>
357 <pop depth="1"/>
358 </rule>
359 </state>
360 <state name="pseudo-class">
361 <rule pattern="[\w-]+">
362 <token type="NameDecorator"/>
363 </rule>
364 <rule pattern="#\{">
365 <token type="LiteralStringInterpol"/>
366 <push state="interpolation"/>
367 </rule>
368 <rule>
369 <pop depth="1"/>
370 </rule>
371 </state>
372 </rules>
373</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml
new file mode 100644
index 0000000..fc60563
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sieve.xml
@@ -0,0 +1,61 @@
1<lexer>
2 <config>
3 <name>Sieve</name>
4 <alias>sieve</alias>
5 <filename>*.siv</filename>
6 <filename>*.sieve</filename>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\s+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="[();,{}\[\]]">
14 <token type="Punctuation"/>
15 </rule>
16 <rule pattern="(?i)require">
17 <token type="KeywordNamespace"/>
18 </rule>
19 <rule pattern="(?i)(:)(addresses|all|contains|content|create|copy|comparator|count|days|detail|domain|fcc|flags|from|handle|importance|is|localpart|length|lowerfirst|lower|matches|message|mime|options|over|percent|quotewildcard|raw|regex|specialuse|subject|text|under|upperfirst|upper|value)">
20 <bygroups>
21 <token type="NameTag"/>
22 <token type="NameTag"/>
23 </bygroups>
24 </rule>
25 <rule pattern="(?i)(address|addflag|allof|anyof|body|discard|elsif|else|envelope|ereject|exists|false|fileinto|if|hasflag|header|keep|notify_method_capability|notify|not|redirect|reject|removeflag|setflag|size|spamtest|stop|string|true|vacation|virustest)">
26 <token type="NameBuiltin"/>
27 </rule>
28 <rule pattern="(?i)set">
29 <token type="KeywordDeclaration"/>
30 </rule>
31 <rule pattern="([0-9.]+)([kmgKMG])?">
32 <bygroups>
33 <token type="LiteralNumber"/>
34 <token type="LiteralNumber"/>
35 </bygroups>
36 </rule>
37 <rule pattern="#.*$">
38 <token type="CommentSingle"/>
39 </rule>
40 <rule pattern="/\*.*\*/">
41 <token type="CommentMultiline"/>
42 </rule>
43 <rule pattern="&#34;[^&#34;]*?&#34;">
44 <token type="LiteralString"/>
45 </rule>
46 <rule pattern="text:">
47 <token type="NameTag"/>
48 <push state="text"/>
49 </rule>
50 </state>
51 <state name="text">
52 <rule pattern="[^.].*?\n">
53 <token type="LiteralString"/>
54 </rule>
55 <rule pattern="^\.">
56 <token type="Punctuation"/>
57 <pop depth="1"/>
58 </rule>
59 </state>
60 </rules>
61</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml
new file mode 100644
index 0000000..0027111
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/smalltalk.xml
@@ -0,0 +1,294 @@
1<lexer>
2 <config>
3 <name>Smalltalk</name>
4 <alias>smalltalk</alias>
5 <alias>squeak</alias>
6 <alias>st</alias>
7 <filename>*.st</filename>
8 <mime_type>text/x-smalltalk</mime_type>
9 </config>
10 <rules>
11 <state name="inner_parenth">
12 <rule pattern="\)">
13 <token type="LiteralStringSymbol"/>
14 <pop depth="1"/>
15 </rule>
16 <rule>
17 <include state="_parenth_helper"/>
18 </rule>
19 </state>
20 <state name="objects">
21 <rule pattern="\[">
22 <token type="Text"/>
23 <push state="blockvariables"/>
24 </rule>
25 <rule pattern="\]">
26 <token type="Text"/>
27 <push state="afterobject"/>
28 </rule>
29 <rule pattern="\b(self|super|true|false|nil|thisContext)\b">
30 <token type="NameBuiltinPseudo"/>
31 <push state="afterobject"/>
32 </rule>
33 <rule pattern="\b[A-Z]\w*(?!:)\b">
34 <token type="NameClass"/>
35 <push state="afterobject"/>
36 </rule>
37 <rule pattern="\b[a-z]\w*(?!:)\b">
38 <token type="NameVariable"/>
39 <push state="afterobject"/>
40 </rule>
41 <rule pattern="#(&#34;(&#34;&#34;|[^&#34;])*&#34;|[-+*/\\~&lt;&gt;=|&amp;!?,@%]+|[\w:]+)">
42 <token type="LiteralStringSymbol"/>
43 <push state="afterobject"/>
44 </rule>
45 <rule>
46 <include state="literals"/>
47 </rule>
48 </state>
49 <state name="afterobject">
50 <rule pattern="! !$">
51 <token type="Keyword"/>
52 <pop depth="1"/>
53 </rule>
54 <rule>
55 <include state="whitespaces"/>
56 </rule>
57 <rule pattern="\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)">
58 <token type="NameBuiltin"/>
59 <pop depth="1"/>
60 </rule>
61 <rule pattern="\b(new\b(?!:))">
62 <token type="NameBuiltin"/>
63 </rule>
64 <rule pattern=":=|_">
65 <token type="Operator"/>
66 <pop depth="1"/>
67 </rule>
68 <rule pattern="\b[a-zA-Z]+\w*:">
69 <token type="NameFunction"/>
70 <pop depth="1"/>
71 </rule>
72 <rule pattern="\b[a-zA-Z]+\w*">
73 <token type="NameFunction"/>
74 </rule>
75 <rule pattern="\w+:?|[-+*/\\~&lt;&gt;=|&amp;!?,@%]+">
76 <token type="NameFunction"/>
77 <pop depth="1"/>
78 </rule>
79 <rule pattern="\.">
80 <token type="Punctuation"/>
81 <pop depth="1"/>
82 </rule>
83 <rule pattern=";">
84 <token type="Punctuation"/>
85 </rule>
86 <rule pattern="[\])}]">
87 <token type="Text"/>
88 </rule>
89 <rule pattern="[\[({]">
90 <token type="Text"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 <state name="literals">
95 <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
96 <token type="LiteralString"/>
97 <push state="afterobject"/>
98 </rule>
99 <rule pattern="\$.">
100 <token type="LiteralStringChar"/>
101 <push state="afterobject"/>
102 </rule>
103 <rule pattern="#\(">
104 <token type="LiteralStringSymbol"/>
105 <push state="parenth"/>
106 </rule>
107 <rule pattern="\)">
108 <token type="Text"/>
109 <push state="afterobject"/>
110 </rule>
111 <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?">
112 <token type="LiteralNumber"/>
113 <push state="afterobject"/>
114 </rule>
115 </state>
116 <state name="root">
117 <rule pattern="(&lt;)(\w+:)(.*?)(&gt;)">
118 <bygroups>
119 <token type="Text"/>
120 <token type="Keyword"/>
121 <token type="Text"/>
122 <token type="Text"/>
123 </bygroups>
124 </rule>
125 <rule>
126 <include state="squeak fileout"/>
127 </rule>
128 <rule>
129 <include state="whitespaces"/>
130 </rule>
131 <rule>
132 <include state="method definition"/>
133 </rule>
134 <rule pattern="(\|)([\w\s]*)(\|)">
135 <bygroups>
136 <token type="Operator"/>
137 <token type="NameVariable"/>
138 <token type="Operator"/>
139 </bygroups>
140 </rule>
141 <rule>
142 <include state="objects"/>
143 </rule>
144 <rule pattern="\^|:=|_">
145 <token type="Operator"/>
146 </rule>
147 <rule pattern="[\]({}.;!]">
148 <token type="Text"/>
149 </rule>
150 </state>
151 <state name="_parenth_helper">
152 <rule>
153 <include state="whitespaces"/>
154 </rule>
155 <rule pattern="(\d+r)?-?\d+(\.\d+)?(e-?\d+)?">
156 <token type="LiteralNumber"/>
157 </rule>
158 <rule pattern="[-+*/\\~&lt;&gt;=|&amp;#!?,@%\w:]+">
159 <token type="LiteralStringSymbol"/>
160 </rule>
161 <rule pattern="&#39;(&#39;&#39;|[^&#39;])*&#39;">
162 <token type="LiteralString"/>
163 </rule>
164 <rule pattern="\$.">
165 <token type="LiteralStringChar"/>
166 </rule>
167 <rule pattern="#*\(">
168 <token type="LiteralStringSymbol"/>
169 <push state="inner_parenth"/>
170 </rule>
171 </state>
172 <state name="parenth">
173 <rule pattern="\)">
174 <token type="LiteralStringSymbol"/>
175 <push state="root" state="afterobject"/>
176 </rule>
177 <rule>
178 <include state="_parenth_helper"/>
179 </rule>
180 </state>
181 <state name="whitespaces">
182 <rule pattern="\s+">
183 <token type="Text"/>
184 </rule>
185 <rule pattern="&#34;(&#34;&#34;|[^&#34;])*&#34;">
186 <token type="Comment"/>
187 </rule>
188 </state>
189 <state name="squeak fileout">
190 <rule pattern="^&#34;(&#34;&#34;|[^&#34;])*&#34;!">
191 <token type="Keyword"/>
192 </rule>
193 <rule pattern="^&#39;(&#39;&#39;|[^&#39;])*&#39;!">
194 <token type="Keyword"/>
195 </rule>
196 <rule pattern="^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)">
197 <bygroups>
198 <token type="Keyword"/>
199 <token type="NameClass"/>
200 <token type="Keyword"/>
201 <token type="LiteralString"/>
202 <token type="Keyword"/>
203 <token type="Text"/>
204 <token type="Keyword"/>
205 </bygroups>
206 </rule>
207 <rule pattern="^(!)(\w+(?: class)?)( methodsFor: )(&#39;(?:&#39;&#39;|[^&#39;])*&#39;)(.*?!)">
208 <bygroups>
209 <token type="Keyword"/>
210 <token type="NameClass"/>
211 <token type="Keyword"/>
212 <token type="LiteralString"/>
213 <token type="Keyword"/>
214 </bygroups>
215 </rule>
216 <rule pattern="^(\w+)( subclass: )(#\w+)(\s+instanceVariableNames: )(.*?)(\s+classVariableNames: )(.*?)(\s+poolDictionaries: )(.*?)(\s+category: )(.*?)(!)">
217 <bygroups>
218 <token type="NameClass"/>
219 <token type="Keyword"/>
220 <token type="LiteralStringSymbol"/>
221 <token type="Keyword"/>
222 <token type="LiteralString"/>
223 <token type="Keyword"/>
224 <token type="LiteralString"/>
225 <token type="Keyword"/>
226 <token type="LiteralString"/>
227 <token type="Keyword"/>
228 <token type="LiteralString"/>
229 <token type="Keyword"/>
230 </bygroups>
231 </rule>
232 <rule pattern="^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)">
233 <bygroups>
234 <token type="NameClass"/>
235 <token type="Keyword"/>
236 <token type="LiteralString"/>
237 <token type="Keyword"/>
238 </bygroups>
239 </rule>
240 <rule pattern="(!\n)(\].*)(! !)$">
241 <bygroups>
242 <token type="Keyword"/>
243 <token type="Text"/>
244 <token type="Keyword"/>
245 </bygroups>
246 </rule>
247 <rule pattern="! !$">
248 <token type="Keyword"/>
249 </rule>
250 </state>
251 <state name="method definition">
252 <rule pattern="([a-zA-Z]+\w*:)(\s*)(\w+)">
253 <bygroups>
254 <token type="NameFunction"/>
255 <token type="Text"/>
256 <token type="NameVariable"/>
257 </bygroups>
258 </rule>
259 <rule pattern="^(\b[a-zA-Z]+\w*\b)(\s*)$">
260 <bygroups>
261 <token type="NameFunction"/>
262 <token type="Text"/>
263 </bygroups>
264 </rule>
265 <rule pattern="^([-+*/\\~&lt;&gt;=|&amp;!?,@%]+)(\s*)(\w+)(\s*)$">
266 <bygroups>
267 <token type="NameFunction"/>
268 <token type="Text"/>
269 <token type="NameVariable"/>
270 <token type="Text"/>
271 </bygroups>
272 </rule>
273 </state>
274 <state name="blockvariables">
275 <rule>
276 <include state="whitespaces"/>
277 </rule>
278 <rule pattern="(:)(\s*)(\w+)">
279 <bygroups>
280 <token type="Operator"/>
281 <token type="Text"/>
282 <token type="NameVariable"/>
283 </bygroups>
284 </rule>
285 <rule pattern="\|">
286 <token type="Operator"/>
287 <pop depth="1"/>
288 </rule>
289 <rule>
290 <pop depth="1"/>
291 </rule>
292 </state>
293 </rules>
294</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml
new file mode 100644
index 0000000..f53dbcb
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/snobol.xml
@@ -0,0 +1,95 @@
1<lexer>
2 <config>
3 <name>Snobol</name>
4 <alias>snobol</alias>
5 <filename>*.snobol</filename>
6 <mime_type>text/x-snobol</mime_type>
7 </config>
8 <rules>
9 <state name="heredoc">
10 <rule pattern=".*\n">
11 <token type="LiteralStringHeredoc"/>
12 </rule>
13 </state>
14 <state name="root">
15 <rule pattern="\*.*\n">
16 <token type="Comment"/>
17 </rule>
18 <rule pattern="[+.] ">
19 <token type="Punctuation"/>
20 <push state="statement"/>
21 </rule>
22 <rule pattern="-.*\n">
23 <token type="Comment"/>
24 </rule>
25 <rule pattern="END\s*\n">
26 <token type="NameLabel"/>
27 <push state="heredoc"/>
28 </rule>
29 <rule pattern="[A-Za-z$][\w$]*">
30 <token type="NameLabel"/>
31 <push state="statement"/>
32 </rule>
33 <rule pattern="\s+">
34 <token type="Text"/>
35 <push state="statement"/>
36 </rule>
37 </state>
38 <state name="statement">
39 <rule pattern="\s*\n">
40 <token type="Text"/>
41 <pop depth="1"/>
42 </rule>
43 <rule pattern="\s+">
44 <token type="Text"/>
45 </rule>
46 <rule pattern="(?&lt;=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])">
47 <token type="NameBuiltin"/>
48 </rule>
49 <rule pattern="[A-Za-z][\w.]*">
50 <token type="Name"/>
51 </rule>
52 <rule pattern="\*\*|[?$.!%*/#+\-@|&amp;\\=]">
53 <token type="Operator"/>
54 </rule>
55 <rule pattern="&#34;[^&#34;]*&#34;">
56 <token type="LiteralString"/>
57 </rule>
58 <rule pattern="&#39;[^&#39;]*&#39;">
59 <token type="LiteralString"/>
60 </rule>
61 <rule pattern="[0-9]+(?=[^.EeDd])">
62 <token type="LiteralNumberInteger"/>
63 </rule>
64 <rule pattern="[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?">
65 <token type="LiteralNumberFloat"/>
66 </rule>
67 <rule pattern=":">
68 <token type="Punctuation"/>
69 <push state="goto"/>
70 </rule>
71 <rule pattern="[()&lt;&gt;,;]">
72 <token type="Punctuation"/>
73 </rule>
74 </state>
75 <state name="goto">
76 <rule pattern="\s*\n">
77 <token type="Text"/>
78 <pop depth="2"/>
79 </rule>
80 <rule pattern="\s+">
81 <token type="Text"/>
82 </rule>
83 <rule pattern="F|S">
84 <token type="Keyword"/>
85 </rule>
86 <rule pattern="(\()([A-Za-z][\w.]*)(\))">
87 <bygroups>
88 <token type="Punctuation"/>
89 <token type="NameLabel"/>
90 <token type="Punctuation"/>
91 </bygroups>
92 </rule>
93 </state>
94 </rules>
95</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml
new file mode 100644
index 0000000..04403c8
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/solidity.xml
@@ -0,0 +1,279 @@
1<lexer>
2 <config>
3 <name>Solidity</name>
4 <alias>sol</alias>
5 <alias>solidity</alias>
6 <filename>*.sol</filename>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="strings">
11 <rule pattern="hex&#39;[0-9a-fA-F]+&#39;">
12 <token type="LiteralString"/>
13 </rule>
14 <rule pattern="hex&#34;[0-9a-fA-F]+&#34;">
15 <token type="LiteralString"/>
16 </rule>
17 <rule pattern="&#34;">
18 <token type="LiteralString"/>
19 <combined state="string-parse-common" state="string-parse-double"/>
20 </rule>
21 <rule pattern="&#39;">
22 <token type="LiteralString"/>
23 <combined state="string-parse-common" state="string-parse-single"/>
24 </rule>
25 </state>
26 <state name="numbers">
27 <rule pattern="0[xX][0-9a-fA-F]+">
28 <token type="LiteralNumberHex"/>
29 </rule>
30 <rule pattern="[0-9]+">
31 <token type="LiteralNumberInteger"/>
32 </rule>
33 </state>
34 <state name="root">
35 <rule>
36 <include state="comments"/>
37 </rule>
38 <rule>
39 <include state="keywords-types"/>
40 </rule>
41 <rule>
42 <include state="keywords-other"/>
43 </rule>
44 <rule>
45 <include state="numbers"/>
46 </rule>
47 <rule>
48 <include state="strings"/>
49 </rule>
50 <rule>
51 <include state="whitespace"/>
52 </rule>
53 <rule pattern="\+\+|--|\*\*|\?|:|~|&amp;&amp;|\|\||=&gt;|==?|!=?|(&lt;&lt;|&gt;&gt;&gt;?|[-&lt;&gt;+*%&amp;|^/])=?">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="[{(\[;,]">
57 <token type="Punctuation"/>
58 </rule>
59 <rule pattern="[})\].]">
60 <token type="Punctuation"/>
61 </rule>
62 <rule pattern="(abi|block|msg|tx)\b">
63 <token type="NameBuiltin"/>
64 </rule>
65 <rule pattern="(?!abi\.)(decode|encode|encodePacked|encodeWithSelector|encodeWithSignature|encodeWithSelector)\b">
66 <token type="NameBuiltin"/>
67 </rule>
68 <rule pattern="(?!block\.)(chainid|coinbase|difficulty|gaslimit|number|timestamp)\b">
69 <token type="NameBuiltin"/>
70 </rule>
71 <rule pattern="(?!msg\.)(data|gas|sender|value)\b">
72 <token type="NameBuiltin"/>
73 </rule>
74 <rule pattern="(?!tx\.)(gasprice|origin)\b">
75 <token type="NameBuiltin"/>
76 </rule>
77 <rule pattern="(type)(\()([a-zA-Z_]\w*)(\))">
78 <bygroups>
79 <token type="NameBuiltin"/>
80 <token type="Punctuation"/>
81 <token type="NameClass"/>
82 <token type="Punctuation"/>
83 </bygroups>
84 </rule>
85 <rule pattern="(?!type\([a-zA-Z_]\w*\)\.)(creationCode|interfaceId|max|min|name|runtimeCode)\b">
86 <token type="NameBuiltin"/>
87 </rule>
88 <rule pattern="(now|this|super|gasleft)\b">
89 <token type="NameBuiltin"/>
90 </rule>
91 <rule pattern="(selfdestruct|suicide)\b">
92 <token type="NameBuiltin"/>
93 </rule>
94 <rule pattern="(?!0x[0-9a-fA-F]+\.)(balance|code|codehash|send|transfer)\b">
95 <token type="NameBuiltin"/>
96 </rule>
97 <rule pattern="(assert|revert|require)\b">
98 <token type="NameBuiltin"/>
99 </rule>
100 <rule pattern="(call|callcode|delegatecall)\b">
101 <token type="NameBuiltin"/>
102 </rule>
103 <rule pattern="selector\b">
104 <token type="NameBuiltin"/>
105 </rule>
106 <rule pattern="(addmod|blockhash|ecrecover|keccak256|mulmod|ripemd160|sha256|sha3)\b">
107 <token type="NameBuiltin"/>
108 </rule>
109 <rule pattern="[a-zA-Z_]\w*">
110 <token type="Name"/>
111 </rule>
112 </state>
113 <state name="keywords-types">
114 <rule pattern="(address|ufixed|string|bytes|fixed|byte|bool|uint|int)\b">
115 <token type="KeywordType"/>
116 </rule>
117 <rule pattern="(int160|int248|int240|int232|int224|int216|int208|int200|int192|int184|int176|int168|int104|int112|int120|int128|int136|int144|int152|int256|int96|int88|int80|int72|int64|int56|int48|int40|int32|int24|int16|int8)\b">
118 <token type="KeywordType"/>
119 </rule>
120 <rule pattern="(uint160|uint248|uint240|uint232|uint224|uint216|uint208|uint200|uint192|uint184|uint176|uint168|uint104|uint112|uint120|uint128|uint136|uint144|uint152|uint256|uint96|uint88|uint80|uint72|uint64|uint56|uint48|uint40|uint32|uint24|uint16|uint8)\b">
121 <token type="KeywordType"/>
122 </rule>
123 <rule pattern="(bytes23|bytes31|bytes30|bytes29|bytes28|bytes27|bytes26|bytes25|bytes24|bytes10|bytes11|bytes12|bytes13|bytes14|bytes15|bytes16|bytes17|bytes18|bytes19|bytes20|bytes21|bytes22|bytes32|bytes9|bytes8|bytes7|bytes6|bytes5|bytes4|bytes3|bytes2|bytes1)\b">
124 <token type="KeywordType"/>
125 </rule>
126 <rule pattern="(fixed104x17|fixed240x16|fixed240x15|fixed240x14|fixed240x13|fixed240x12|fixed240x11|fixed240x10|fixed232x24|fixed232x23|fixed232x22|fixed232x21|fixed232x20|fixed232x19|fixed232x18|fixed232x17|fixed232x16|fixed232x15|fixed232x14|fixed232x13|fixed232x12|fixed232x11|fixed232x10|fixed224x32|fixed224x31|fixed224x30|fixed224x29|fixed224x28|fixed224x27|fixed224x26|fixed224x25|fixed224x24|fixed224x23|fixed224x22|fixed224x21|fixed224x20|fixed224x19|fixed224x18|fixed224x17|fixed224x16|fixed224x15|fixed224x14|fixed224x13|fixed224x12|fixed224x11|fixed224x10|fixed216x40|fixed216x39|fixed216x38|fixed216x37|fixed216x36|fixed216x35|fixed216x34|fixed216x33|fixed216x32|fixed216x31|fixed216x30|fixed216x29|fixed216x28|fixed216x27|fixed216x26|fixed216x25|fixed216x24|fixed216x23|fixed216x22|fixed216x21|fixed216x20|fixed216x19|fixed216x18|fixed216x17|fixed216x16|fixed216x15|fixed216x14|fixed216x13|fixed216x12|fixed216x11|fixed216x10|fixed208x48|fixed208x47|fixed208x46|fixed208x45|fixed208x44|fixed208x43|fixed208x42|fixed208x41|fixed208x40|fixed208x39|fixed208x38|fixed208x37|fixed208x36|fixed208x35|fixed208x34|fixed208x33|fixed208x32|fixed208x31|fixed208x30|fixed208x29|fixed208x28|fixed208x27|fixed208x26|fixed208x25|fixed208x24|fixed208x23|fixed208x22|fixed208x21|fixed208x20|fixed208x19|fixed208x18|fixed208x17|fixed208x16|fixed208x15|fixed208x14|fixed208x13|fixed208x12|fixed208x11|fixed208x10|fixed200x56|fixed200x55|fixed200x54|fixed200x53|fixed200x52|fixed200x51|fixed200x50|fixed200x49|fixed200x48|fixed200x47|fixed200x46|fixed200x45|fixed200x44|fixed200x43|fixed200x42|fixed200x41|fixed200x40|fixed200x39|fixed200x38|fixed200x37|fixed200x36|fixed200x35|fixed200x34|fixed200x33|fixed200x32|fixed200x31|fixed200x30|fixed200x29|fixed200x28|fixed200x27|fixed200x26|fixed200x25|fixed200x24|fixed200x23|fixed200x22|fixed200x21|fixed200x20|fixed200x19|fixed200x18|fixed200x17|fixed200x16|fixed200x15|fixed200x14|fixed200x13|fixed200x12|fixed200x11|fixed200x10|fixed192x64|fixed192x63|fixed192x62|fixed192x61|fixed192x60|fixed192x59|fixed192x58|fixed192x57|fixed192x56|fixed192x55|fixed192x54|fixed192x53|fixed192x52|fixed192x51|fixed192x50|fixed192x49|fixed192x48|fixed192x47|fixed192x46|fixed192x45|fixed192x44|fixed192x43|fixed192x42|fixed192x41|fixed192x40|fixed192x39|fixed192x38|fixed192x37|fixed192x36|fixed192x35|fixed192x34|fixed192x33|fixed192x32|fixed192x31|fixed192x30|fixed192x29|fixed192x28|fixed192x27|fixed192x26|fixed192x25|fixed192x24|fixed192x23|fixed192x22|fixed192x21|fixed192x20|fixed192x19|fixed192x18|fixed192x17|fixed192x16|fixed192x15|fixed192x14|fixed192x13|fixed192x12|fixed192x11|fixed192x10|fixed184x72|fixed184x71|fixed184x70|fixed184x69|fixed184x68|fixed184x67|fixed184x66|fixed184x65|fixed184x64|fixed184x63|fixed184x62|fixed184x61|fixed184x60|fixed184x59|fixed184x58|fixed184x57|fixed184x56|fixed184x55|fixed184x54|fixed184x53|fixed184x52|fixed184x51|fixed184x50|fixed184x49|fixed184x48|fixed184x47|fixed184x46|fixed184x45|fixed184x44|fixed184x43|fixed184x42|fixed184x41|fixed184x40|fixed184x39|fixed184x38|fixed184x37|fixed184x36|fixed184x35|fixed184x34|fixed184x33|fixed184x32|fixed184x31|fixed184x30|fixed184x29|fixed184x28|fixed184x27|fixed184x26|fixed184x25|fixed184x24|fixed184x23|fixed184x22|fixed184x21|fixed184x20|fixed184x19|fixed184x18|fixed184x17|fixed184x16|fixed184x15|fixed184x14|fixed184x13|fixed184x12|fixed184x11|fixed184x10|fixed176x80|fixed176x79|fixed176x78|fixed176x77|fixed176x76|fixed176x75|fixed176x74|fixed176x73|fixed176x72|fixed176x71|fixed176x70|fixed176x69|fixed176x68|fixed176x67|fixed176x66|fixed176x65|fixed176x64|fixed176x63|fixed176x62|fixed176x61|fixed176x60|fixed176x59|fixed176x58|fixed176x57|fixed176x56|fixed176x55|fixed176x54|fixed176x53|fixed176x52|fixed176x51|fixed176x50|fixed176x49|fixed176x48|fixed176x47|fixed176x46|fixed176x45|fixed176x44|fixed176x43|fixed176x42|fixed176x41|fixed176x40|fixed176x39|fixed176x38|fixed176x37|fixed176x36|fixed176x35|fixed176x34|fixed176x33|fixed176x32|fixed176x31|fixed176x30|fixed176x29|fixed176x28|fixed176x27|fixed176x26|fixed176x25|fixed176x24|fixed176x23|fixed176x22|fixed176x21|fixed176x20|fixed176x19|fixed176x18|fixed176x17|fixed176x16|fixed176x15|fixed176x14|fixed176x13|fixed176x12|fixed176x11|fixed176x10|fixed168x80|fixed168x79|fixed168x78|fixed168x77|fixed168x76|fixed168x75|fixed168x74|fixed168x73|fixed168x72|fixed168x71|fixed168x70|fixed168x69|fixed168x68|fixed168x67|fixed168x66|fixed168x65|fixed168x64|fixed168x63|fixed168x62|fixed168x61|fixed168x60|fixed168x59|fixed168x58|fixed168x57|fixed168x56|fixed168x55|fixed168x54|fixed168x53|fixed168x52|fixed168x51|fixed168x50|fixed168x49|fixed168x48|fixed168x47|fixed168x46|fixed168x45|fixed168x44|fixed168x43|fixed168x42|fixed168x41|fixed168x40|fixed168x39|fixed168x38|fixed168x37|fixed168x36|fixed168x35|fixed168x34|fixed168x33|fixed168x32|fixed168x31|fixed168x30|fixed168x29|fixed168x28|fixed168x27|fixed168x26|fixed168x25|fixed168x24|fixed168x23|fixed168x22|fixed168x21|fixed168x20|fixed168x19|fixed168x18|fixed168x17|fixed168x16|fixed168x15|fixed168x14|fixed168x13|fixed168x12|fixed168x11|fixed168x10|fixed160x80|fixed160x79|fixed160x78|fixed160x77|fixed160x76|fixed160x75|fixed160x73|fixed160x72|fixed160x71|fixed160x70|fixed160x69|fixed160x68|fixed160x67|fixed160x66|fixed160x65|fixed160x64|fixed160x63|fixed160x62|fixed160x61|fixed160x60|fixed160x59|fixed160x58|fixed160x57|fixed160x56|fixed160x55|fixed160x54|fixed160x53|fixed160x52|fixed160x51|fixed160x50|fixed160x49|fixed160x48|fixed160x47|fixed160x46|fixed160x45|fixed160x44|fixed160x43|fixed160x42|fixed160x41|fixed160x40|fixed160x39|fixed160x38|fixed160x37|fixed160x36|fixed160x35|fixed160x34|fixed160x33|fixed160x32|fixed160x31|fixed160x30|fixed160x29|fixed160x28|fixed160x27|fixed160x26|fixed160x25|fixed160x24|fixed160x23|fixed160x22|fixed160x21|fixed160x20|fixed160x19|fixed160x18|fixed160x17|fixed160x16|fixed160x15|fixed160x14|fixed160x13|fixed160x12|fixed160x11|fixed160x10|fixed152x80|fixed152x79|fixed152x78|fixed152x77|fixed152x76|fixed152x75|fixed152x74|fixed152x73|fixed152x72|fixed152x71|fixed152x70|fixed152x69|fixed152x68|fixed152x67|fixed152x66|fixed152x65|fixed152x64|fixed152x63|fixed152x62|fixed152x61|fixed152x60|fixed152x59|fixed152x58|fixed152x57|fixed152x56|fixed152x55|fixed152x54|fixed152x53|fixed152x52|fixed152x51|fixed152x50|fixed152x49|fixed152x48|fixed152x47|fixed152x46|fixed152x45|fixed152x44|fixed152x43|fixed152x42|fixed152x41|fixed152x40|fixed152x39|fixed152x38|fixed152x37|fixed152x36|fixed152x35|fixed152x34|fixed152x33|fixed152x32|fixed152x31|fixed152x30|fixed152x29|fixed152x28|fixed152x27|fixed152x26|fixed152x25|fixed152x24|fixed152x23|fixed152x22|fixed152x21|fixed152x20|fixed152x19|fixed152x18|fixed152x17|fixed152x16|fixed152x15|fixed152x14|fixed152x13|fixed152x12|fixed152x11|fixed152x10|fixed144x80|fixed144x79|fixed144x78|fixed144x77|fixed144x76|fixed144x75|fixed144x74|fixed144x73|fixed144x72|fixed144x71|fixed144x70|fixed144x69|fixed144x68|fixed144x67|fixed144x66|fixed144x65|fixed144x64|fixed144x63|fixed144x62|fixed144x61|fixed144x60|fixed144x59|fixed144x58|fixed144x57|fixed144x56|fixed144x55|fixed144x54|fixed144x53|fixed144x52|fixed144x51|fixed144x50|fixed144x49|fixed144x48|fixed144x47|fixed144x46|fixed144x45|fixed144x44|fixed144x43|fixed144x42|fixed144x41|fixed144x40|fixed144x39|fixed144x38|fixed144x37|fixed144x36|fixed144x35|fixed144x34|fixed144x33|fixed144x32|fixed144x31|fixed144x30|fixed144x29|fixed144x28|fixed144x27|fixed144x26|fixed144x25|fixed144x24|fixed144x23|fixed144x22|fixed144x21|fixed144x20|fixed144x19|fixed144x18|fixed144x17|fixed144x16|fixed144x15|fixed144x14|fixed144x13|fixed144x12|fixed144x11|fixed144x10|fixed136x80|fixed136x79|fixed136x78|fixed136x77|fixed136x76|fixed136x75|fixed136x74|fixed136x73|fixed136x72|fixed136x71|fixed136x70|fixed136x69|fixed136x68|fixed136x67|fixed136x66|fixed136x65|fixed136x64|fixed136x63|fixed136x62|fixed136x61|fixed136x60|fixed136x59|fixed136x58|fixed136x57|fixed136x56|fixed136x55|fixed136x54|fixed136x53|fixed136x52|fixed136x51|fixed136x50|fixed136x48|fixed136x47|fixed136x46|fixed136x45|fixed136x44|fixed136x43|fixed136x42|fixed136x41|fixed136x40|fixed136x39|fixed136x38|fixed136x37|fixed136x36|fixed136x35|fixed136x34|fixed136x33|fixed136x32|fixed136x31|fixed136x30|fixed136x29|fixed136x28|fixed136x27|fixed136x26|fixed136x25|fixed136x24|fixed136x23|fixed136x22|fixed136x21|fixed136x20|fixed136x19|fixed136x18|fixed136x17|fixed136x16|fixed136x15|fixed136x14|fixed136x13|fixed136x12|fixed136x11|fixed136x10|fixed128x80|fixed128x79|fixed128x78|fixed128x77|fixed128x76|fixed128x75|fixed128x74|fixed128x73|fixed128x72|fixed128x71|fixed128x70|fixed128x69|fixed128x68|fixed128x67|fixed128x66|fixed128x65|fixed128x64|fixed128x63|fixed128x62|fixed128x61|fixed128x60|fixed128x59|fixed128x58|fixed128x57|fixed128x56|fixed128x55|fixed128x54|fixed128x53|fixed128x52|fixed128x51|fixed128x50|fixed128x49|fixed128x48|fixed128x47|fixed128x46|fixed128x45|fixed128x44|fixed128x43|fixed128x42|fixed128x41|fixed128x40|fixed128x39|fixed128x38|fixed128x37|fixed128x36|fixed128x35|fixed128x34|fixed128x33|fixed128x32|fixed128x31|fixed128x30|fixed128x29|fixed128x28|fixed128x27|fixed128x26|fixed128x25|fixed128x24|fixed128x23|fixed128x22|fixed128x21|fixed128x20|fixed128x19|fixed128x18|fixed128x17|fixed128x16|fixed128x15|fixed128x14|fixed128x13|fixed128x12|fixed128x11|fixed128x10|fixed120x80|fixed120x79|fixed120x78|fixed120x77|fixed120x76|fixed120x75|fixed120x74|fixed120x73|fixed120x72|fixed120x71|fixed120x70|fixed120x69|fixed120x68|fixed120x67|fixed120x66|fixed120x65|fixed120x64|fixed120x63|fixed120x62|fixed120x61|fixed120x60|fixed120x59|fixed120x58|fixed120x57|fixed120x56|fixed120x55|fixed120x54|fixed120x53|fixed120x52|fixed120x51|fixed120x50|fixed112x23|fixed120x49|fixed120x48|fixed120x47|fixed120x46|fixed120x45|fixed120x44|fixed120x43|fixed120x42|fixed120x41|fixed120x40|fixed120x39|fixed120x38|fixed120x37|fixed120x36|fixed120x35|fixed120x34|fixed120x33|fixed120x32|fixed120x31|fixed120x30|fixed120x29|fixed120x28|fixed120x27|fixed120x26|fixed120x25|fixed120x24|fixed120x23|fixed120x22|fixed120x21|fixed120x20|fixed120x19|fixed120x18|fixed120x17|fixed120x16|fixed120x15|fixed120x14|fixed120x13|fixed120x12|fixed120x11|fixed120x10|fixed112x80|fixed112x79|fixed112x78|fixed112x77|fixed112x76|fixed112x75|fixed112x74|fixed112x73|fixed112x72|fixed112x71|fixed112x70|fixed112x69|fixed112x68|fixed112x67|fixed112x66|fixed112x65|fixed112x64|fixed112x63|fixed112x62|fixed112x61|fixed112x60|fixed112x59|fixed112x58|fixed112x57|fixed112x56|fixed112x55|fixed112x54|fixed112x53|fixed112x52|fixed112x51|fixed112x50|fixed112x49|fixed112x48|fixed112x47|fixed112x46|fixed112x45|fixed112x44|fixed112x43|fixed112x42|fixed112x41|fixed112x40|fixed112x39|fixed112x38|fixed112x37|fixed112x36|fixed112x35|fixed112x34|fixed112x33|fixed112x32|fixed112x31|fixed112x30|fixed112x29|fixed112x28|fixed112x27|fixed112x26|fixed112x25|fixed112x24|fixed136x49|fixed112x22|fixed112x21|fixed112x20|fixed112x19|fixed112x18|fixed112x17|fixed112x16|fixed112x15|fixed112x14|fixed112x13|fixed112x12|fixed112x11|fixed112x10|fixed104x80|fixed104x79|fixed104x78|fixed104x77|fixed104x76|fixed104x75|fixed104x74|fixed104x73|fixed104x72|fixed104x71|fixed104x70|fixed104x69|fixed104x68|fixed104x67|fixed104x66|fixed104x65|fixed104x64|fixed104x63|fixed104x62|fixed104x61|fixed104x60|fixed104x59|fixed104x58|fixed104x57|fixed104x56|fixed104x55|fixed104x54|fixed104x53|fixed104x52|fixed104x51|fixed104x50|fixed104x49|fixed104x48|fixed104x47|fixed104x46|fixed104x45|fixed104x44|fixed104x43|fixed104x42|fixed104x41|fixed104x40|fixed104x39|fixed104x38|fixed104x37|fixed104x36|fixed104x35|fixed104x34|fixed104x33|fixed104x32|fixed104x31|fixed104x30|fixed104x29|fixed104x28|fixed104x27|fixed104x26|fixed104x25|fixed104x24|fixed104x23|fixed104x22|fixed104x21|fixed104x20|fixed104x19|fixed104x18|fixed104x10|fixed104x11|fixed104x12|fixed104x13|fixed104x14|fixed104x15|fixed104x16|fixed160x74|fixed104x9|fixed104x8|fixed104x7|fixed104x6|fixed104x5|fixed104x4|fixed104x3|fixed104x2|fixed104x1|fixed104x0|fixed96x80|fixed96x79|fixed96x78|fixed96x77|fixed96x76|fixed96x75|fixed96x74|fixed96x73|fixed96x72|fixed96x71|fixed96x70|fixed96x69|fixed96x68|fixed96x67|fixed96x66|fixed96x65|fixed96x64|fixed96x63|fixed96x62|fixed96x61|fixed96x60|fixed96x59|fixed96x58|fixed96x57|fixed96x56|fixed96x55|fixed96x54|fixed96x53|fixed96x52|fixed96x51|fixed96x50|fixed96x49|fixed96x48|fixed96x47|fixed96x46|fixed96x45|fixed96x44|fixed96x43|fixed96x42|fixed96x41|fixed96x40|fixed96x39|fixed96x38|fixed96x37|fixed96x36|fixed96x35|fixed96x34|fixed96x33|fixed96x32|fixed96x31|fixed96x30|fixed96x29|fixed96x28|fixed112x0|fixed112x1|fixed112x2|fixed112x3|fixed112x4|fixed112x5|fixed112x6|fixed112x7|fixed112x8|fixed112x9|fixed96x27|fixed96x26|fixed96x25|fixed96x24|fixed96x23|fixed96x22|fixed96x21|fixed96x20|fixed96x19|fixed96x18|fixed96x17|fixed96x16|fixed96x15|fixed96x14|fixed96x13|fixed96x12|fixed96x11|fixed96x10|fixed248x8|fixed248x7|fixed248x6|fixed248x5|fixed248x4|fixed248x3|fixed248x2|fixed248x1|fixed248x0|fixed240x9|fixed88x80|fixed88x79|fixed88x78|fixed88x77|fixed88x76|fixed88x75|fixed88x74|fixed88x73|fixed88x72|fixed88x71|fixed88x70|fixed88x69|fixed88x68|fixed88x67|fixed88x66|fixed88x65|fixed88x64|fixed88x63|fixed88x62|fixed88x61|fixed88x60|fixed88x59|fixed88x58|fixed88x57|fixed88x56|fixed88x55|fixed88x54|fixed88x53|fixed88x52|fixed88x51|fixed88x50|fixed88x49|fixed88x48|fixed88x47|fixed88x46|fixed88x45|fixed88x44|fixed88x43|fixed88x42|fixed88x41|fixed88x40|fixed88x39|fixed88x38|fixed120x0|fixed120x1|fixed120x2|fixed120x3|fixed120x4|fixed120x5|fixed120x6|fixed120x7|fixed120x8|fixed120x9|fixed88x37|fixed88x36|fixed88x35|fixed88x34|fixed88x33|fixed88x32|fixed88x31|fixed88x30|fixed88x29|fixed88x28|fixed88x27|fixed88x26|fixed88x25|fixed88x24|fixed88x23|fixed88x22|fixed88x21|fixed88x20|fixed88x19|fixed88x18|fixed88x17|fixed88x16|fixed88x15|fixed88x14|fixed88x13|fixed88x12|fixed88x11|fixed88x10|fixed240x8|fixed240x7|fixed240x6|fixed240x5|fixed240x4|fixed240x3|fixed240x2|fixed240x1|fixed240x0|fixed232x9|fixed80x80|fixed80x79|fixed80x77|fixed80x76|fixed80x75|fixed80x74|fixed80x73|fixed80x72|fixed80x71|fixed80x70|fixed80x69|fixed80x68|fixed80x67|fixed80x66|fixed80x65|fixed80x64|fixed80x63|fixed80x62|fixed80x61|fixed80x60|fixed80x59|fixed80x58|fixed80x57|fixed80x56|fixed80x55|fixed80x54|fixed80x53|fixed80x52|fixed80x51|fixed80x50|fixed80x49|fixed80x48|fixed80x47|fixed128x0|fixed128x1|fixed128x2|fixed128x3|fixed128x4|fixed128x5|fixed128x6|fixed128x7|fixed128x8|fixed128x9|fixed80x46|fixed80x45|fixed80x44|fixed80x43|fixed80x42|fixed80x41|fixed80x40|fixed80x39|fixed80x38|fixed80x37|fixed80x36|fixed80x35|fixed80x34|fixed80x33|fixed80x32|fixed80x31|fixed80x30|fixed80x29|fixed80x28|fixed80x27|fixed80x26|fixed80x25|fixed80x24|fixed80x23|fixed80x22|fixed80x21|fixed80x20|fixed80x19|fixed80x18|fixed80x17|fixed80x16|fixed80x15|fixed80x14|fixed80x13|fixed80x12|fixed80x11|fixed80x10|fixed232x8|fixed232x7|fixed232x6|fixed232x5|fixed232x4|fixed232x3|fixed232x2|fixed232x1|fixed232x0|fixed224x9|fixed72x80|fixed72x79|fixed72x78|fixed72x77|fixed72x76|fixed72x75|fixed72x74|fixed72x73|fixed72x72|fixed72x71|fixed72x70|fixed72x69|fixed72x68|fixed72x67|fixed72x66|fixed72x65|fixed72x64|fixed72x63|fixed72x62|fixed72x61|fixed72x60|fixed72x59|fixed72x58|fixed72x57|fixed136x0|fixed136x1|fixed136x2|fixed136x3|fixed136x4|fixed136x5|fixed136x6|fixed136x7|fixed136x8|fixed136x9|fixed72x56|fixed72x55|fixed72x54|fixed72x53|fixed72x52|fixed72x51|fixed72x50|fixed72x49|fixed72x48|fixed72x47|fixed72x46|fixed72x45|fixed72x44|fixed72x43|fixed72x42|fixed72x41|fixed72x40|fixed72x39|fixed72x38|fixed72x37|fixed72x36|fixed72x35|fixed72x34|fixed72x33|fixed72x32|fixed72x31|fixed72x30|fixed72x29|fixed72x28|fixed72x27|fixed72x26|fixed72x25|fixed72x24|fixed72x23|fixed72x22|fixed72x21|fixed72x20|fixed72x19|fixed72x18|fixed80x78|fixed72x17|fixed72x16|fixed72x15|fixed72x14|fixed72x13|fixed72x12|fixed72x11|fixed72x10|fixed224x8|fixed224x7|fixed224x6|fixed224x5|fixed224x4|fixed224x3|fixed224x2|fixed224x1|fixed224x0|fixed216x9|fixed64x80|fixed64x79|fixed64x78|fixed64x77|fixed64x76|fixed64x75|fixed64x74|fixed64x73|fixed64x72|fixed64x71|fixed64x70|fixed64x69|fixed64x68|fixed144x0|fixed144x1|fixed144x2|fixed144x3|fixed144x4|fixed144x5|fixed144x6|fixed144x7|fixed144x8|fixed144x9|fixed64x67|fixed64x66|fixed64x65|fixed64x64|fixed64x63|fixed64x62|fixed64x61|fixed64x60|fixed64x59|fixed64x58|fixed64x57|fixed64x56|fixed64x55|fixed64x54|fixed64x53|fixed64x52|fixed64x51|fixed64x50|fixed64x49|fixed64x48|fixed64x47|fixed64x46|fixed64x45|fixed64x44|fixed64x43|fixed64x42|fixed64x41|fixed64x40|fixed64x39|fixed64x38|fixed64x37|fixed64x36|fixed64x35|fixed64x34|fixed64x33|fixed64x32|fixed64x31|fixed64x30|fixed64x29|fixed64x28|fixed64x27|fixed64x26|fixed64x25|fixed64x24|fixed64x23|fixed64x22|fixed64x21|fixed64x20|fixed64x19|fixed64x18|fixed64x17|fixed64x16|fixed64x15|fixed64x14|fixed64x13|fixed64x12|fixed64x11|fixed64x10|fixed216x8|fixed216x7|fixed216x6|fixed216x5|fixed216x4|fixed216x3|fixed216x2|fixed216x1|fixed216x0|fixed16x10|fixed56x80|fixed56x79|fixed56x78|fixed152x0|fixed152x1|fixed152x2|fixed152x3|fixed152x4|fixed152x5|fixed152x6|fixed152x7|fixed152x8|fixed152x9|fixed56x77|fixed56x76|fixed56x75|fixed56x74|fixed56x73|fixed56x72|fixed56x71|fixed56x70|fixed56x69|fixed56x68|fixed56x67|fixed56x66|fixed56x65|fixed56x64|fixed56x63|fixed56x62|fixed56x61|fixed56x60|fixed56x59|fixed56x58|fixed56x57|fixed56x56|fixed56x55|fixed56x54|fixed56x53|fixed16x11|fixed56x51|fixed56x50|fixed56x49|fixed56x48|fixed56x47|fixed56x46|fixed56x45|fixed56x44|fixed56x43|fixed56x42|fixed56x41|fixed56x40|fixed56x39|fixed56x38|fixed56x37|fixed56x36|fixed56x35|fixed56x34|fixed56x33|fixed56x32|fixed56x31|fixed56x30|fixed56x29|fixed56x28|fixed56x27|fixed56x26|fixed56x25|fixed56x24|fixed56x23|fixed56x22|fixed56x21|fixed56x20|fixed56x19|fixed56x18|fixed56x17|fixed56x16|fixed56x15|fixed56x14|fixed56x13|fixed56x12|fixed56x11|fixed56x10|fixed16x12|fixed16x13|fixed16x14|fixed160x0|fixed160x1|fixed160x2|fixed160x3|fixed160x4|fixed160x5|fixed160x6|fixed160x7|fixed160x8|fixed160x9|fixed16x15|fixed16x16|fixed16x17|fixed16x18|fixed16x19|fixed16x20|fixed16x21|fixed48x80|fixed48x79|fixed48x78|fixed48x77|fixed48x76|fixed48x75|fixed48x74|fixed48x73|fixed48x72|fixed48x71|fixed48x70|fixed48x69|fixed48x68|fixed48x67|fixed48x66|fixed16x53|fixed48x64|fixed48x63|fixed48x62|fixed48x61|fixed48x60|fixed48x59|fixed48x58|fixed48x57|fixed48x56|fixed48x55|fixed48x54|fixed48x53|fixed48x52|fixed48x51|fixed48x50|fixed48x49|fixed48x48|fixed48x47|fixed48x46|fixed48x45|fixed48x44|fixed48x43|fixed48x42|fixed48x41|fixed48x40|fixed48x39|fixed48x38|fixed48x37|fixed48x36|fixed48x35|fixed48x34|fixed48x33|fixed48x32|fixed48x31|fixed48x30|fixed48x29|fixed48x28|fixed48x27|fixed48x26|fixed48x25|fixed48x24|fixed256x0|fixed48x23|fixed48x22|fixed48x21|fixed48x20|fixed48x19|fixed48x18|fixed168x0|fixed168x1|fixed168x2|fixed168x3|fixed168x4|fixed168x5|fixed168x6|fixed168x7|fixed168x8|fixed168x9|fixed48x17|fixed48x16|fixed48x15|fixed48x14|fixed48x13|fixed48x12|fixed48x11|fixed48x10|fixed16x22|fixed16x23|fixed16x24|fixed16x25|fixed16x26|fixed16x27|fixed16x28|fixed16x29|fixed16x30|fixed16x31|fixed40x80|fixed40x79|fixed40x78|fixed40x77|fixed40x76|fixed40x75|fixed40x74|fixed40x73|fixed40x72|fixed40x71|fixed40x70|fixed40x69|fixed40x68|fixed40x67|fixed40x66|fixed40x65|fixed40x64|fixed40x63|fixed40x62|fixed40x61|fixed40x60|fixed40x59|fixed40x58|fixed40x57|fixed40x56|fixed40x55|fixed40x54|fixed40x53|fixed40x52|fixed40x51|fixed40x50|fixed40x49|fixed40x48|fixed40x47|fixed40x46|fixed40x45|fixed40x44|fixed40x43|fixed40x42|fixed40x41|fixed40x40|fixed40x39|fixed40x38|fixed40x37|fixed40x36|fixed40x35|fixed40x34|fixed40x33|fixed40x32|fixed40x31|fixed40x30|fixed40x29|fixed40x28|fixed176x0|fixed176x1|fixed176x2|fixed176x3|fixed176x4|fixed176x5|fixed176x6|fixed176x7|fixed176x8|fixed176x9|fixed40x27|fixed40x26|fixed40x25|fixed40x24|fixed40x23|fixed40x22|fixed40x21|fixed40x20|fixed40x19|fixed40x18|fixed40x17|fixed40x16|fixed40x15|fixed40x14|fixed40x13|fixed40x12|fixed40x11|fixed40x10|fixed16x32|fixed16x33|fixed16x34|fixed208x9|fixed208x8|fixed208x7|fixed208x6|fixed208x5|fixed208x4|fixed208x3|fixed32x80|fixed32x79|fixed32x78|fixed32x77|fixed32x76|fixed32x75|fixed32x74|fixed32x73|fixed32x72|fixed32x71|fixed32x70|fixed32x69|fixed32x68|fixed32x67|fixed32x66|fixed32x65|fixed32x64|fixed32x63|fixed32x62|fixed32x61|fixed32x60|fixed32x59|fixed32x58|fixed32x57|fixed32x56|fixed32x55|fixed32x54|fixed32x53|fixed32x52|fixed32x51|fixed32x50|fixed32x49|fixed32x48|fixed32x47|fixed32x46|fixed32x45|fixed32x44|fixed32x43|fixed32x42|fixed32x41|fixed32x40|fixed32x39|fixed32x38|fixed184x0|fixed184x1|fixed184x2|fixed184x3|fixed184x4|fixed184x5|fixed184x6|fixed184x7|fixed184x8|fixed184x9|fixed32x37|fixed32x36|fixed32x35|fixed32x34|fixed32x33|fixed32x32|fixed32x31|fixed32x30|fixed32x29|fixed32x28|fixed32x27|fixed32x26|fixed32x25|fixed32x24|fixed32x23|fixed32x22|fixed32x21|fixed32x20|fixed32x19|fixed32x18|fixed32x17|fixed32x16|fixed32x15|fixed32x14|fixed32x13|fixed32x12|fixed32x11|fixed32x10|fixed208x2|fixed208x1|fixed208x0|fixed16x35|fixed16x36|fixed16x37|fixed16x38|fixed16x39|fixed16x40|fixed16x41|fixed24x80|fixed24x79|fixed24x78|fixed24x77|fixed24x76|fixed24x75|fixed24x74|fixed24x73|fixed24x72|fixed24x71|fixed24x70|fixed24x69|fixed24x68|fixed24x67|fixed24x66|fixed24x65|fixed24x64|fixed24x63|fixed24x62|fixed24x61|fixed24x60|fixed24x59|fixed24x58|fixed24x57|fixed24x56|fixed192x0|fixed192x1|fixed192x2|fixed192x3|fixed192x4|fixed192x5|fixed192x6|fixed192x7|fixed192x8|fixed192x9|fixed24x55|fixed24x54|fixed24x53|fixed24x52|fixed24x51|fixed24x50|fixed24x49|fixed24x48|fixed24x47|fixed24x46|fixed24x45|fixed24x44|fixed24x43|fixed24x42|fixed24x41|fixed24x40|fixed24x39|fixed24x38|fixed24x37|fixed24x36|fixed24x35|fixed24x34|fixed24x33|fixed24x32|fixed24x31|fixed24x30|fixed24x29|fixed24x28|fixed24x27|fixed24x26|fixed24x25|fixed24x24|fixed24x23|fixed24x22|fixed24x21|fixed24x20|fixed24x19|fixed24x18|fixed24x17|fixed24x16|fixed24x15|fixed24x14|fixed24x13|fixed24x12|fixed24x11|fixed24x10|fixed16x42|fixed16x43|fixed16x44|fixed16x45|fixed16x46|fixed16x47|fixed16x48|fixed16x49|fixed16x50|fixed200x0|fixed200x1|fixed200x2|fixed200x3|fixed200x4|fixed200x5|fixed200x6|fixed200x7|fixed200x8|fixed200x9|fixed16x51|fixed16x80|fixed16x79|fixed16x78|fixed16x77|fixed16x76|fixed16x75|fixed16x74|fixed16x73|fixed16x72|fixed16x71|fixed16x70|fixed16x69|fixed16x68|fixed16x67|fixed16x66|fixed16x65|fixed16x64|fixed16x63|fixed16x62|fixed16x61|fixed16x60|fixed16x59|fixed16x58|fixed16x57|fixed16x56|fixed16x55|fixed16x54|fixed48x65|fixed16x52|fixed56x52|fixed24x1|fixed24x2|fixed24x3|fixed24x4|fixed24x5|fixed24x6|fixed24x7|fixed24x8|fixed24x9|fixed32x0|fixed32x1|fixed32x2|fixed32x3|fixed32x4|fixed32x5|fixed32x6|fixed32x7|fixed32x8|fixed32x9|fixed40x0|fixed40x1|fixed40x2|fixed40x3|fixed40x4|fixed40x5|fixed40x6|fixed40x7|fixed40x8|fixed40x9|fixed48x0|fixed48x1|fixed48x2|fixed48x3|fixed48x4|fixed48x5|fixed48x6|fixed48x7|fixed48x8|fixed48x9|fixed56x0|fixed56x1|fixed56x2|fixed56x3|fixed56x4|fixed56x5|fixed56x6|fixed56x7|fixed56x8|fixed56x9|fixed96x9|fixed64x0|fixed16x9|fixed16x8|fixed16x7|fixed16x6|fixed16x5|fixed16x4|fixed16x3|fixed16x2|fixed16x1|fixed16x0|fixed8x80|fixed8x79|fixed8x78|fixed8x77|fixed64x1|fixed64x2|fixed64x3|fixed64x4|fixed64x5|fixed64x6|fixed64x7|fixed64x8|fixed64x9|fixed72x0|fixed8x76|fixed8x75|fixed8x74|fixed8x73|fixed8x72|fixed8x71|fixed8x70|fixed8x69|fixed8x68|fixed8x67|fixed8x66|fixed8x65|fixed8x64|fixed8x63|fixed8x62|fixed8x61|fixed8x60|fixed8x59|fixed8x58|fixed8x57|fixed96x2|fixed8x55|fixed8x54|fixed8x53|fixed8x52|fixed8x51|fixed8x50|fixed8x49|fixed8x48|fixed8x47|fixed8x46|fixed72x1|fixed72x2|fixed72x3|fixed72x4|fixed72x5|fixed72x6|fixed72x7|fixed72x8|fixed72x9|fixed80x0|fixed8x45|fixed8x44|fixed8x43|fixed8x42|fixed8x41|fixed8x40|fixed8x39|fixed8x38|fixed8x37|fixed8x36|fixed8x35|fixed8x34|fixed8x33|fixed8x32|fixed8x31|fixed8x30|fixed8x29|fixed8x28|fixed8x27|fixed8x26|fixed8x25|fixed8x24|fixed8x23|fixed80x1|fixed80x2|fixed80x3|fixed80x4|fixed80x5|fixed80x6|fixed80x7|fixed80x8|fixed80x9|fixed88x0|fixed8x22|fixed8x21|fixed8x20|fixed8x19|fixed8x18|fixed8x17|fixed8x16|fixed8x15|fixed8x14|fixed8x13|fixed8x12|fixed8x11|fixed8x10|fixed96x8|fixed96x7|fixed88x1|fixed88x2|fixed88x3|fixed88x4|fixed88x5|fixed88x6|fixed88x7|fixed88x8|fixed88x9|fixed96x0|fixed96x6|fixed96x5|fixed96x4|fixed96x3|fixed8x56|fixed96x1|fixed24x0|fixed8x2|fixed8x3|fixed8x4|fixed8x5|fixed8x6|fixed8x7|fixed8x8|fixed8x9|fixed8x0|fixed8x1)\b">
127 <token type="KeywordType"/>
128 </rule>
129 <rule pattern="(ufixed104x17|ufixed240x16|ufixed240x15|ufixed240x14|ufixed240x13|ufixed240x12|ufixed240x11|ufixed240x10|ufixed232x24|ufixed232x23|ufixed232x22|ufixed232x21|ufixed232x20|ufixed232x19|ufixed232x18|ufixed232x17|ufixed232x16|ufixed232x15|ufixed232x14|ufixed232x13|ufixed232x12|ufixed232x11|ufixed232x10|ufixed224x32|ufixed224x31|ufixed224x30|ufixed224x29|ufixed224x28|ufixed224x27|ufixed224x26|ufixed224x25|ufixed224x24|ufixed224x23|ufixed224x22|ufixed224x21|ufixed224x20|ufixed224x19|ufixed224x18|ufixed224x17|ufixed224x16|ufixed224x15|ufixed224x14|ufixed224x13|ufixed224x12|ufixed224x11|ufixed224x10|ufixed216x40|ufixed216x39|ufixed216x38|ufixed216x37|ufixed216x36|ufixed216x35|ufixed216x34|ufixed216x33|ufixed216x32|ufixed216x31|ufixed216x30|ufixed216x29|ufixed216x28|ufixed216x27|ufixed216x26|ufixed216x25|ufixed216x24|ufixed216x23|ufixed216x22|ufixed216x21|ufixed216x20|ufixed216x19|ufixed216x18|ufixed216x17|ufixed216x16|ufixed216x15|ufixed216x14|ufixed216x13|ufixed216x12|ufixed216x11|ufixed216x10|ufixed208x48|ufixed208x47|ufixed208x46|ufixed208x45|ufixed208x44|ufixed208x43|ufixed208x42|ufixed208x41|ufixed208x40|ufixed208x39|ufixed208x38|ufixed208x37|ufixed208x36|ufixed208x35|ufixed208x34|ufixed208x33|ufixed208x32|ufixed208x31|ufixed208x30|ufixed208x29|ufixed208x28|ufixed208x27|ufixed208x26|ufixed208x25|ufixed208x24|ufixed208x23|ufixed208x22|ufixed208x21|ufixed208x20|ufixed208x19|ufixed208x18|ufixed208x17|ufixed208x16|ufixed208x15|ufixed208x14|ufixed208x13|ufixed208x12|ufixed208x11|ufixed208x10|ufixed200x56|ufixed200x55|ufixed200x54|ufixed200x53|ufixed200x52|ufixed200x51|ufixed200x50|ufixed200x49|ufixed200x48|ufixed200x47|ufixed200x46|ufixed200x45|ufixed200x44|ufixed200x43|ufixed200x42|ufixed200x41|ufixed200x40|ufixed200x39|ufixed200x38|ufixed200x37|ufixed200x36|ufixed200x35|ufixed200x34|ufixed200x33|ufixed200x32|ufixed200x31|ufixed200x30|ufixed200x29|ufixed200x28|ufixed200x27|ufixed200x26|ufixed200x25|ufixed200x24|ufixed200x23|ufixed200x22|ufixed200x21|ufixed200x20|ufixed200x19|ufixed200x18|ufixed200x17|ufixed200x16|ufixed200x15|ufixed200x14|ufixed200x13|ufixed200x12|ufixed200x11|ufixed200x10|ufixed192x64|ufixed192x63|ufixed192x62|ufixed192x61|ufixed192x60|ufixed192x59|ufixed192x58|ufixed192x57|ufixed192x56|ufixed192x55|ufixed192x54|ufixed192x53|ufixed192x52|ufixed192x51|ufixed192x50|ufixed192x49|ufixed192x48|ufixed192x47|ufixed192x46|ufixed192x45|ufixed192x44|ufixed192x43|ufixed192x42|ufixed192x41|ufixed192x40|ufixed192x39|ufixed192x38|ufixed192x37|ufixed192x36|ufixed192x35|ufixed192x34|ufixed192x33|ufixed192x32|ufixed192x31|ufixed192x30|ufixed192x29|ufixed192x28|ufixed192x27|ufixed192x26|ufixed192x25|ufixed192x24|ufixed192x23|ufixed192x22|ufixed192x21|ufixed192x20|ufixed192x19|ufixed192x18|ufixed192x17|ufixed192x16|ufixed192x15|ufixed192x14|ufixed192x13|ufixed192x12|ufixed192x11|ufixed192x10|ufixed184x72|ufixed184x71|ufixed184x70|ufixed184x69|ufixed184x68|ufixed184x67|ufixed184x66|ufixed184x65|ufixed184x64|ufixed184x63|ufixed184x62|ufixed184x61|ufixed184x60|ufixed184x59|ufixed184x58|ufixed184x57|ufixed184x56|ufixed184x55|ufixed184x54|ufixed184x53|ufixed184x52|ufixed184x51|ufixed184x50|ufixed184x49|ufixed184x48|ufixed184x47|ufixed184x46|ufixed184x45|ufixed184x44|ufixed184x43|ufixed184x42|ufixed184x41|ufixed184x40|ufixed184x39|ufixed184x38|ufixed184x37|ufixed184x36|ufixed184x35|ufixed184x34|ufixed184x33|ufixed184x32|ufixed184x31|ufixed184x30|ufixed184x29|ufixed184x28|ufixed184x27|ufixed184x26|ufixed184x25|ufixed184x24|ufixed184x23|ufixed184x22|ufixed184x21|ufixed184x20|ufixed184x19|ufixed184x18|ufixed184x17|ufixed184x16|ufixed184x15|ufixed184x14|ufixed184x13|ufixed184x12|ufixed184x11|ufixed184x10|ufixed176x80|ufixed176x79|ufixed176x78|ufixed176x77|ufixed176x76|ufixed176x75|ufixed176x74|ufixed176x73|ufixed176x72|ufixed176x71|ufixed176x70|ufixed176x69|ufixed176x68|ufixed176x67|ufixed176x66|ufixed176x65|ufixed176x64|ufixed176x63|ufixed176x62|ufixed176x61|ufixed176x60|ufixed176x59|ufixed176x58|ufixed176x57|ufixed176x56|ufixed176x55|ufixed176x54|ufixed176x53|ufixed176x52|ufixed176x51|ufixed176x50|ufixed176x49|ufixed176x48|ufixed176x47|ufixed176x46|ufixed176x45|ufixed176x44|ufixed176x43|ufixed176x42|ufixed176x41|ufixed176x40|ufixed176x39|ufixed176x38|ufixed176x37|ufixed176x36|ufixed176x35|ufixed176x34|ufixed176x33|ufixed176x32|ufixed176x31|ufixed176x30|ufixed176x29|ufixed176x28|ufixed176x27|ufixed176x26|ufixed176x25|ufixed176x24|ufixed176x23|ufixed176x22|ufixed176x21|ufixed176x20|ufixed176x19|ufixed176x18|ufixed176x17|ufixed176x16|ufixed176x15|ufixed176x14|ufixed176x13|ufixed176x12|ufixed176x11|ufixed176x10|ufixed168x80|ufixed168x79|ufixed168x78|ufixed168x77|ufixed168x76|ufixed168x75|ufixed168x74|ufixed168x73|ufixed168x72|ufixed168x71|ufixed168x70|ufixed168x69|ufixed168x68|ufixed168x67|ufixed168x66|ufixed168x65|ufixed168x64|ufixed168x63|ufixed168x62|ufixed168x61|ufixed168x60|ufixed168x59|ufixed168x58|ufixed168x57|ufixed168x56|ufixed168x55|ufixed168x54|ufixed168x53|ufixed168x52|ufixed168x51|ufixed168x50|ufixed168x49|ufixed168x48|ufixed168x47|ufixed168x46|ufixed168x45|ufixed168x44|ufixed168x43|ufixed168x42|ufixed168x41|ufixed168x40|ufixed168x39|ufixed168x38|ufixed168x37|ufixed168x36|ufixed168x35|ufixed168x34|ufixed168x33|ufixed168x32|ufixed168x31|ufixed168x30|ufixed168x29|ufixed168x28|ufixed168x27|ufixed168x26|ufixed168x25|ufixed168x24|ufixed168x23|ufixed168x22|ufixed168x21|ufixed168x20|ufixed168x19|ufixed168x18|ufixed168x17|ufixed168x16|ufixed168x15|ufixed168x14|ufixed168x13|ufixed168x12|ufixed168x11|ufixed168x10|ufixed160x80|ufixed160x79|ufixed160x78|ufixed160x77|ufixed160x76|ufixed160x75|ufixed160x73|ufixed160x72|ufixed160x71|ufixed160x70|ufixed160x69|ufixed160x68|ufixed160x67|ufixed160x66|ufixed160x65|ufixed160x64|ufixed160x63|ufixed160x62|ufixed160x61|ufixed160x60|ufixed160x59|ufixed160x58|ufixed160x57|ufixed160x56|ufixed160x55|ufixed160x54|ufixed160x53|ufixed160x52|ufixed160x51|ufixed160x50|ufixed160x49|ufixed160x48|ufixed160x47|ufixed160x46|ufixed160x45|ufixed160x44|ufixed160x43|ufixed160x42|ufixed160x41|ufixed160x40|ufixed160x39|ufixed160x38|ufixed160x37|ufixed160x36|ufixed160x35|ufixed160x34|ufixed160x33|ufixed160x32|ufixed160x31|ufixed160x30|ufixed160x29|ufixed160x28|ufixed160x27|ufixed160x26|ufixed160x25|ufixed160x24|ufixed160x23|ufixed160x22|ufixed160x21|ufixed160x20|ufixed160x19|ufixed160x18|ufixed160x17|ufixed160x16|ufixed160x15|ufixed160x14|ufixed160x13|ufixed160x12|ufixed160x11|ufixed160x10|ufixed152x80|ufixed152x79|ufixed152x78|ufixed152x77|ufixed152x76|ufixed152x75|ufixed152x74|ufixed152x73|ufixed152x72|ufixed152x71|ufixed152x70|ufixed152x69|ufixed152x68|ufixed152x67|ufixed152x66|ufixed152x65|ufixed152x64|ufixed152x63|ufixed152x62|ufixed152x61|ufixed152x60|ufixed152x59|ufixed152x58|ufixed152x57|ufixed152x56|ufixed152x55|ufixed152x54|ufixed152x53|ufixed152x52|ufixed152x51|ufixed152x50|ufixed152x49|ufixed152x48|ufixed152x47|ufixed152x46|ufixed152x45|ufixed152x44|ufixed152x43|ufixed152x42|ufixed152x41|ufixed152x40|ufixed152x39|ufixed152x38|ufixed152x37|ufixed152x36|ufixed152x35|ufixed152x34|ufixed152x33|ufixed152x32|ufixed152x31|ufixed152x30|ufixed152x29|ufixed152x28|ufixed152x27|ufixed152x26|ufixed152x25|ufixed152x24|ufixed152x23|ufixed152x22|ufixed152x21|ufixed152x20|ufixed152x19|ufixed152x18|ufixed152x17|ufixed152x16|ufixed152x15|ufixed152x14|ufixed152x13|ufixed152x12|ufixed152x11|ufixed152x10|ufixed144x80|ufixed144x79|ufixed144x78|ufixed144x77|ufixed144x76|ufixed144x75|ufixed144x74|ufixed144x73|ufixed144x72|ufixed144x71|ufixed144x70|ufixed144x69|ufixed144x68|ufixed144x67|ufixed144x66|ufixed144x65|ufixed144x64|ufixed144x63|ufixed144x62|ufixed144x61|ufixed144x60|ufixed144x59|ufixed144x58|ufixed144x57|ufixed144x56|ufixed144x55|ufixed144x54|ufixed144x53|ufixed144x52|ufixed144x51|ufixed144x50|ufixed144x49|ufixed144x48|ufixed144x47|ufixed144x46|ufixed144x45|ufixed144x44|ufixed144x43|ufixed144x42|ufixed144x41|ufixed144x40|ufixed144x39|ufixed144x38|ufixed144x37|ufixed144x36|ufixed144x35|ufixed144x34|ufixed144x33|ufixed144x32|ufixed144x31|ufixed144x30|ufixed144x29|ufixed144x28|ufixed144x27|ufixed144x26|ufixed144x25|ufixed144x24|ufixed144x23|ufixed144x22|ufixed144x21|ufixed144x20|ufixed144x19|ufixed144x18|ufixed144x17|ufixed144x16|ufixed144x15|ufixed144x14|ufixed144x13|ufixed144x12|ufixed144x11|ufixed144x10|ufixed136x80|ufixed136x79|ufixed136x78|ufixed136x77|ufixed136x76|ufixed136x75|ufixed136x74|ufixed136x73|ufixed136x72|ufixed136x71|ufixed136x70|ufixed136x69|ufixed136x68|ufixed136x67|ufixed136x66|ufixed136x65|ufixed136x64|ufixed136x63|ufixed136x62|ufixed136x61|ufixed136x60|ufixed136x59|ufixed136x58|ufixed136x57|ufixed136x56|ufixed136x55|ufixed136x54|ufixed136x53|ufixed136x52|ufixed136x51|ufixed136x50|ufixed136x48|ufixed136x47|ufixed136x46|ufixed136x45|ufixed136x44|ufixed136x43|ufixed136x42|ufixed136x41|ufixed136x40|ufixed136x39|ufixed136x38|ufixed136x37|ufixed136x36|ufixed136x35|ufixed136x34|ufixed136x33|ufixed136x32|ufixed136x31|ufixed136x30|ufixed136x29|ufixed136x28|ufixed136x27|ufixed136x26|ufixed136x25|ufixed136x24|ufixed136x23|ufixed136x22|ufixed136x21|ufixed136x20|ufixed136x19|ufixed136x18|ufixed136x17|ufixed136x16|ufixed136x15|ufixed136x14|ufixed136x13|ufixed136x12|ufixed136x11|ufixed136x10|ufixed128x80|ufixed128x79|ufixed128x78|ufixed128x77|ufixed128x76|ufixed128x75|ufixed128x74|ufixed128x73|ufixed128x72|ufixed128x71|ufixed128x70|ufixed128x69|ufixed128x68|ufixed128x67|ufixed128x66|ufixed128x65|ufixed128x64|ufixed128x63|ufixed128x62|ufixed128x61|ufixed128x60|ufixed128x59|ufixed128x58|ufixed128x57|ufixed128x56|ufixed128x55|ufixed128x54|ufixed128x53|ufixed128x52|ufixed128x51|ufixed128x50|ufixed128x49|ufixed128x48|ufixed128x47|ufixed128x46|ufixed128x45|ufixed128x44|ufixed128x43|ufixed128x42|ufixed128x41|ufixed128x40|ufixed128x39|ufixed128x38|ufixed128x37|ufixed128x36|ufixed128x35|ufixed128x34|ufixed128x33|ufixed128x32|ufixed128x31|ufixed128x30|ufixed128x29|ufixed128x28|ufixed128x27|ufixed128x26|ufixed128x25|ufixed128x24|ufixed128x23|ufixed128x22|ufixed128x21|ufixed128x20|ufixed128x19|ufixed128x18|ufixed128x17|ufixed128x16|ufixed128x15|ufixed128x14|ufixed128x13|ufixed128x12|ufixed128x11|ufixed128x10|ufixed120x80|ufixed120x79|ufixed120x78|ufixed120x77|ufixed120x76|ufixed120x75|ufixed120x74|ufixed120x73|ufixed120x72|ufixed120x71|ufixed120x70|ufixed120x69|ufixed120x68|ufixed120x67|ufixed120x66|ufixed120x65|ufixed120x64|ufixed120x63|ufixed120x62|ufixed120x61|ufixed120x60|ufixed120x59|ufixed120x58|ufixed120x57|ufixed120x56|ufixed120x55|ufixed120x54|ufixed120x53|ufixed120x52|ufixed120x51|ufixed120x50|ufixed112x23|ufixed120x49|ufixed120x48|ufixed120x47|ufixed120x46|ufixed120x45|ufixed120x44|ufixed120x43|ufixed120x42|ufixed120x41|ufixed120x40|ufixed120x39|ufixed120x38|ufixed120x37|ufixed120x36|ufixed120x35|ufixed120x34|ufixed120x33|ufixed120x32|ufixed120x31|ufixed120x30|ufixed120x29|ufixed120x28|ufixed120x27|ufixed120x26|ufixed120x25|ufixed120x24|ufixed120x23|ufixed120x22|ufixed120x21|ufixed120x20|ufixed120x19|ufixed120x18|ufixed120x17|ufixed120x16|ufixed120x15|ufixed120x14|ufixed120x13|ufixed120x12|ufixed120x11|ufixed120x10|ufixed112x80|ufixed112x79|ufixed112x78|ufixed112x77|ufixed112x76|ufixed112x75|ufixed112x74|ufixed112x73|ufixed112x72|ufixed112x71|ufixed112x70|ufixed112x69|ufixed112x68|ufixed112x67|ufixed112x66|ufixed112x65|ufixed112x64|ufixed112x63|ufixed112x62|ufixed112x61|ufixed112x60|ufixed112x59|ufixed112x58|ufixed112x57|ufixed112x56|ufixed112x55|ufixed112x54|ufixed112x53|ufixed112x52|ufixed112x51|ufixed112x50|ufixed112x49|ufixed112x48|ufixed112x47|ufixed112x46|ufixed112x45|ufixed112x44|ufixed112x43|ufixed112x42|ufixed112x41|ufixed112x40|ufixed112x39|ufixed112x38|ufixed112x37|ufixed112x36|ufixed112x35|ufixed112x34|ufixed112x33|ufixed112x32|ufixed112x31|ufixed112x30|ufixed112x29|ufixed112x28|ufixed112x27|ufixed112x26|ufixed112x25|ufixed112x24|ufixed136x49|ufixed112x22|ufixed112x21|ufixed112x20|ufixed112x19|ufixed112x18|ufixed112x17|ufixed112x16|ufixed112x15|ufixed112x14|ufixed112x13|ufixed112x12|ufixed112x11|ufixed112x10|ufixed104x80|ufixed104x79|ufixed104x78|ufixed104x77|ufixed104x76|ufixed104x75|ufixed104x74|ufixed104x73|ufixed104x72|ufixed104x71|ufixed104x70|ufixed104x69|ufixed104x68|ufixed104x67|ufixed104x66|ufixed104x65|ufixed104x64|ufixed104x63|ufixed104x62|ufixed104x61|ufixed104x60|ufixed104x59|ufixed104x58|ufixed104x57|ufixed104x56|ufixed104x55|ufixed104x54|ufixed104x53|ufixed104x52|ufixed104x51|ufixed104x50|ufixed104x49|ufixed104x48|ufixed104x47|ufixed104x46|ufixed104x45|ufixed104x44|ufixed104x43|ufixed104x42|ufixed104x41|ufixed104x40|ufixed104x39|ufixed104x38|ufixed104x37|ufixed104x36|ufixed104x35|ufixed104x34|ufixed104x33|ufixed104x32|ufixed104x31|ufixed104x30|ufixed104x29|ufixed104x28|ufixed104x27|ufixed104x26|ufixed104x25|ufixed104x24|ufixed104x23|ufixed104x22|ufixed104x21|ufixed104x20|ufixed104x19|ufixed104x18|ufixed104x10|ufixed104x11|ufixed104x12|ufixed104x13|ufixed104x14|ufixed104x15|ufixed104x16|ufixed160x74|ufixed104x9|ufixed104x8|ufixed104x7|ufixed104x6|ufixed104x5|ufixed104x4|ufixed104x3|ufixed104x2|ufixed104x1|ufixed104x0|ufixed96x80|ufixed96x79|ufixed96x78|ufixed96x77|ufixed96x76|ufixed96x75|ufixed96x74|ufixed96x73|ufixed96x72|ufixed96x71|ufixed96x70|ufixed96x69|ufixed96x68|ufixed96x67|ufixed96x66|ufixed96x65|ufixed96x64|ufixed96x63|ufixed96x62|ufixed96x61|ufixed96x60|ufixed96x59|ufixed96x58|ufixed96x57|ufixed96x56|ufixed96x55|ufixed96x54|ufixed96x53|ufixed96x52|ufixed96x51|ufixed96x50|ufixed96x49|ufixed96x48|ufixed96x47|ufixed96x46|ufixed96x45|ufixed96x44|ufixed96x43|ufixed96x42|ufixed96x41|ufixed96x40|ufixed96x39|ufixed96x38|ufixed96x37|ufixed96x36|ufixed96x35|ufixed96x34|ufixed96x33|ufixed96x32|ufixed96x31|ufixed96x30|ufixed96x29|ufixed96x28|ufixed112x0|ufixed112x1|ufixed112x2|ufixed112x3|ufixed112x4|ufixed112x5|ufixed112x6|ufixed112x7|ufixed112x8|ufixed112x9|ufixed96x27|ufixed96x26|ufixed96x25|ufixed96x24|ufixed96x23|ufixed96x22|ufixed96x21|ufixed96x20|ufixed96x19|ufixed96x18|ufixed96x17|ufixed96x16|ufixed96x15|ufixed96x14|ufixed96x13|ufixed96x12|ufixed96x11|ufixed96x10|ufixed248x8|ufixed248x7|ufixed248x6|ufixed248x5|ufixed248x4|ufixed248x3|ufixed248x2|ufixed248x1|ufixed248x0|ufixed240x9|ufixed88x80|ufixed88x79|ufixed88x78|ufixed88x77|ufixed88x76|ufixed88x75|ufixed88x74|ufixed88x73|ufixed88x72|ufixed88x71|ufixed88x70|ufixed88x69|ufixed88x68|ufixed88x67|ufixed88x66|ufixed88x65|ufixed88x64|ufixed88x63|ufixed88x62|ufixed88x61|ufixed88x60|ufixed88x59|ufixed88x58|ufixed88x57|ufixed88x56|ufixed88x55|ufixed88x54|ufixed88x53|ufixed88x52|ufixed88x51|ufixed88x50|ufixed88x49|ufixed88x48|ufixed88x47|ufixed88x46|ufixed88x45|ufixed88x44|ufixed88x43|ufixed88x42|ufixed88x41|ufixed88x40|ufixed88x39|ufixed88x38|ufixed120x0|ufixed120x1|ufixed120x2|ufixed120x3|ufixed120x4|ufixed120x5|ufixed120x6|ufixed120x7|ufixed120x8|ufixed120x9|ufixed88x37|ufixed88x36|ufixed88x35|ufixed88x34|ufixed88x33|ufixed88x32|ufixed88x31|ufixed88x30|ufixed88x29|ufixed88x28|ufixed88x27|ufixed88x26|ufixed88x25|ufixed88x24|ufixed88x23|ufixed88x22|ufixed88x21|ufixed88x20|ufixed88x19|ufixed88x18|ufixed88x17|ufixed88x16|ufixed88x15|ufixed88x14|ufixed88x13|ufixed88x12|ufixed88x11|ufixed88x10|ufixed240x8|ufixed240x7|ufixed240x6|ufixed240x5|ufixed240x4|ufixed240x3|ufixed240x2|ufixed240x1|ufixed240x0|ufixed232x9|ufixed80x80|ufixed80x79|ufixed80x77|ufixed80x76|ufixed80x75|ufixed80x74|ufixed80x73|ufixed80x72|ufixed80x71|ufixed80x70|ufixed80x69|ufixed80x68|ufixed80x67|ufixed80x66|ufixed80x65|ufixed80x64|ufixed80x63|ufixed80x62|ufixed80x61|ufixed80x60|ufixed80x59|ufixed80x58|ufixed80x57|ufixed80x56|ufixed80x55|ufixed80x54|ufixed80x53|ufixed80x52|ufixed80x51|ufixed80x50|ufixed80x49|ufixed80x48|ufixed80x47|ufixed128x0|ufixed128x1|ufixed128x2|ufixed128x3|ufixed128x4|ufixed128x5|ufixed128x6|ufixed128x7|ufixed128x8|ufixed128x9|ufixed80x46|ufixed80x45|ufixed80x44|ufixed80x43|ufixed80x42|ufixed80x41|ufixed80x40|ufixed80x39|ufixed80x38|ufixed80x37|ufixed80x36|ufixed80x35|ufixed80x34|ufixed80x33|ufixed80x32|ufixed80x31|ufixed80x30|ufixed80x29|ufixed80x28|ufixed80x27|ufixed80x26|ufixed80x25|ufixed80x24|ufixed80x23|ufixed80x22|ufixed80x21|ufixed80x20|ufixed80x19|ufixed80x18|ufixed80x17|ufixed80x16|ufixed80x15|ufixed80x14|ufixed80x13|ufixed80x12|ufixed80x11|ufixed80x10|ufixed232x8|ufixed232x7|ufixed232x6|ufixed232x5|ufixed232x4|ufixed232x3|ufixed232x2|ufixed232x1|ufixed232x0|ufixed224x9|ufixed72x80|ufixed72x79|ufixed72x78|ufixed72x77|ufixed72x76|ufixed72x75|ufixed72x74|ufixed72x73|ufixed72x72|ufixed72x71|ufixed72x70|ufixed72x69|ufixed72x68|ufixed72x67|ufixed72x66|ufixed72x65|ufixed72x64|ufixed72x63|ufixed72x62|ufixed72x61|ufixed72x60|ufixed72x59|ufixed72x58|ufixed72x57|ufixed136x0|ufixed136x1|ufixed136x2|ufixed136x3|ufixed136x4|ufixed136x5|ufixed136x6|ufixed136x7|ufixed136x8|ufixed136x9|ufixed72x56|ufixed72x55|ufixed72x54|ufixed72x53|ufixed72x52|ufixed72x51|ufixed72x50|ufixed72x49|ufixed72x48|ufixed72x47|ufixed72x46|ufixed72x45|ufixed72x44|ufixed72x43|ufixed72x42|ufixed72x41|ufixed72x40|ufixed72x39|ufixed72x38|ufixed72x37|ufixed72x36|ufixed72x35|ufixed72x34|ufixed72x33|ufixed72x32|ufixed72x31|ufixed72x30|ufixed72x29|ufixed72x28|ufixed72x27|ufixed72x26|ufixed72x25|ufixed72x24|ufixed72x23|ufixed72x22|ufixed72x21|ufixed72x20|ufixed72x19|ufixed72x18|ufixed80x78|ufixed72x17|ufixed72x16|ufixed72x15|ufixed72x14|ufixed72x13|ufixed72x12|ufixed72x11|ufixed72x10|ufixed224x8|ufixed224x7|ufixed224x6|ufixed224x5|ufixed224x4|ufixed224x3|ufixed224x2|ufixed224x1|ufixed224x0|ufixed216x9|ufixed64x80|ufixed64x79|ufixed64x78|ufixed64x77|ufixed64x76|ufixed64x75|ufixed64x74|ufixed64x73|ufixed64x72|ufixed64x71|ufixed64x70|ufixed64x69|ufixed64x68|ufixed144x0|ufixed144x1|ufixed144x2|ufixed144x3|ufixed144x4|ufixed144x5|ufixed144x6|ufixed144x7|ufixed144x8|ufixed144x9|ufixed64x67|ufixed64x66|ufixed64x65|ufixed64x64|ufixed64x63|ufixed64x62|ufixed64x61|ufixed64x60|ufixed64x59|ufixed64x58|ufixed64x57|ufixed64x56|ufixed64x55|ufixed64x54|ufixed64x53|ufixed64x52|ufixed64x51|ufixed64x50|ufixed64x49|ufixed64x48|ufixed64x47|ufixed64x46|ufixed64x45|ufixed64x44|ufixed64x43|ufixed64x42|ufixed64x41|ufixed64x40|ufixed64x39|ufixed64x38|ufixed64x37|ufixed64x36|ufixed64x35|ufixed64x34|ufixed64x33|ufixed64x32|ufixed64x31|ufixed64x30|ufixed64x29|ufixed64x28|ufixed64x27|ufixed64x26|ufixed64x25|ufixed64x24|ufixed64x23|ufixed64x22|ufixed64x21|ufixed64x20|ufixed64x19|ufixed64x18|ufixed64x17|ufixed64x16|ufixed64x15|ufixed64x14|ufixed64x13|ufixed64x12|ufixed64x11|ufixed64x10|ufixed216x8|ufixed216x7|ufixed216x6|ufixed216x5|ufixed216x4|ufixed216x3|ufixed216x2|ufixed216x1|ufixed216x0|ufixed16x10|ufixed56x80|ufixed56x79|ufixed56x78|ufixed152x0|ufixed152x1|ufixed152x2|ufixed152x3|ufixed152x4|ufixed152x5|ufixed152x6|ufixed152x7|ufixed152x8|ufixed152x9|ufixed56x77|ufixed56x76|ufixed56x75|ufixed56x74|ufixed56x73|ufixed56x72|ufixed56x71|ufixed56x70|ufixed56x69|ufixed56x68|ufixed56x67|ufixed56x66|ufixed56x65|ufixed56x64|ufixed56x63|ufixed56x62|ufixed56x61|ufixed56x60|ufixed56x59|ufixed56x58|ufixed56x57|ufixed56x56|ufixed56x55|ufixed56x54|ufixed56x53|ufixed16x11|ufixed56x51|ufixed56x50|ufixed56x49|ufixed56x48|ufixed56x47|ufixed56x46|ufixed56x45|ufixed56x44|ufixed56x43|ufixed56x42|ufixed56x41|ufixed56x40|ufixed56x39|ufixed56x38|ufixed56x37|ufixed56x36|ufixed56x35|ufixed56x34|ufixed56x33|ufixed56x32|ufixed56x31|ufixed56x30|ufixed56x29|ufixed56x28|ufixed56x27|ufixed56x26|ufixed56x25|ufixed56x24|ufixed56x23|ufixed56x22|ufixed56x21|ufixed56x20|ufixed56x19|ufixed56x18|ufixed56x17|ufixed56x16|ufixed56x15|ufixed56x14|ufixed56x13|ufixed56x12|ufixed56x11|ufixed56x10|ufixed16x12|ufixed16x13|ufixed16x14|ufixed160x0|ufixed160x1|ufixed160x2|ufixed160x3|ufixed160x4|ufixed160x5|ufixed160x6|ufixed160x7|ufixed160x8|ufixed160x9|ufixed16x15|ufixed16x16|ufixed16x17|ufixed16x18|ufixed16x19|ufixed16x20|ufixed16x21|ufixed48x80|ufixed48x79|ufixed48x78|ufixed48x77|ufixed48x76|ufixed48x75|ufixed48x74|ufixed48x73|ufixed48x72|ufixed48x71|ufixed48x70|ufixed48x69|ufixed48x68|ufixed48x67|ufixed48x66|ufixed16x53|ufixed48x64|ufixed48x63|ufixed48x62|ufixed48x61|ufixed48x60|ufixed48x59|ufixed48x58|ufixed48x57|ufixed48x56|ufixed48x55|ufixed48x54|ufixed48x53|ufixed48x52|ufixed48x51|ufixed48x50|ufixed48x49|ufixed48x48|ufixed48x47|ufixed48x46|ufixed48x45|ufixed48x44|ufixed48x43|ufixed48x42|ufixed48x41|ufixed48x40|ufixed48x39|ufixed48x38|ufixed48x37|ufixed48x36|ufixed48x35|ufixed48x34|ufixed48x33|ufixed48x32|ufixed48x31|ufixed48x30|ufixed48x29|ufixed48x28|ufixed48x27|ufixed48x26|ufixed48x25|ufixed48x24|ufixed256x0|ufixed48x23|ufixed48x22|ufixed48x21|ufixed48x20|ufixed48x19|ufixed48x18|ufixed168x0|ufixed168x1|ufixed168x2|ufixed168x3|ufixed168x4|ufixed168x5|ufixed168x6|ufixed168x7|ufixed168x8|ufixed168x9|ufixed48x17|ufixed48x16|ufixed48x15|ufixed48x14|ufixed48x13|ufixed48x12|ufixed48x11|ufixed48x10|ufixed16x22|ufixed16x23|ufixed16x24|ufixed16x25|ufixed16x26|ufixed16x27|ufixed16x28|ufixed16x29|ufixed16x30|ufixed16x31|ufixed40x80|ufixed40x79|ufixed40x78|ufixed40x77|ufixed40x76|ufixed40x75|ufixed40x74|ufixed40x73|ufixed40x72|ufixed40x71|ufixed40x70|ufixed40x69|ufixed40x68|ufixed40x67|ufixed40x66|ufixed40x65|ufixed40x64|ufixed40x63|ufixed40x62|ufixed40x61|ufixed40x60|ufixed40x59|ufixed40x58|ufixed40x57|ufixed40x56|ufixed40x55|ufixed40x54|ufixed40x53|ufixed40x52|ufixed40x51|ufixed40x50|ufixed40x49|ufixed40x48|ufixed40x47|ufixed40x46|ufixed40x45|ufixed40x44|ufixed40x43|ufixed40x42|ufixed40x41|ufixed40x40|ufixed40x39|ufixed40x38|ufixed40x37|ufixed40x36|ufixed40x35|ufixed40x34|ufixed40x33|ufixed40x32|ufixed40x31|ufixed40x30|ufixed40x29|ufixed40x28|ufixed176x0|ufixed176x1|ufixed176x2|ufixed176x3|ufixed176x4|ufixed176x5|ufixed176x6|ufixed176x7|ufixed176x8|ufixed176x9|ufixed40x27|ufixed40x26|ufixed40x25|ufixed40x24|ufixed40x23|ufixed40x22|ufixed40x21|ufixed40x20|ufixed40x19|ufixed40x18|ufixed40x17|ufixed40x16|ufixed40x15|ufixed40x14|ufixed40x13|ufixed40x12|ufixed40x11|ufixed40x10|ufixed16x32|ufixed16x33|ufixed16x34|ufixed208x9|ufixed208x8|ufixed208x7|ufixed208x6|ufixed208x5|ufixed208x4|ufixed208x3|ufixed32x80|ufixed32x79|ufixed32x78|ufixed32x77|ufixed32x76|ufixed32x75|ufixed32x74|ufixed32x73|ufixed32x72|ufixed32x71|ufixed32x70|ufixed32x69|ufixed32x68|ufixed32x67|ufixed32x66|ufixed32x65|ufixed32x64|ufixed32x63|ufixed32x62|ufixed32x61|ufixed32x60|ufixed32x59|ufixed32x58|ufixed32x57|ufixed32x56|ufixed32x55|ufixed32x54|ufixed32x53|ufixed32x52|ufixed32x51|ufixed32x50|ufixed32x49|ufixed32x48|ufixed32x47|ufixed32x46|ufixed32x45|ufixed32x44|ufixed32x43|ufixed32x42|ufixed32x41|ufixed32x40|ufixed32x39|ufixed32x38|ufixed184x0|ufixed184x1|ufixed184x2|ufixed184x3|ufixed184x4|ufixed184x5|ufixed184x6|ufixed184x7|ufixed184x8|ufixed184x9|ufixed32x37|ufixed32x36|ufixed32x35|ufixed32x34|ufixed32x33|ufixed32x32|ufixed32x31|ufixed32x30|ufixed32x29|ufixed32x28|ufixed32x27|ufixed32x26|ufixed32x25|ufixed32x24|ufixed32x23|ufixed32x22|ufixed32x21|ufixed32x20|ufixed32x19|ufixed32x18|ufixed32x17|ufixed32x16|ufixed32x15|ufixed32x14|ufixed32x13|ufixed32x12|ufixed32x11|ufixed32x10|ufixed208x2|ufixed208x1|ufixed208x0|ufixed16x35|ufixed16x36|ufixed16x37|ufixed16x38|ufixed16x39|ufixed16x40|ufixed16x41|ufixed24x80|ufixed24x79|ufixed24x78|ufixed24x77|ufixed24x76|ufixed24x75|ufixed24x74|ufixed24x73|ufixed24x72|ufixed24x71|ufixed24x70|ufixed24x69|ufixed24x68|ufixed24x67|ufixed24x66|ufixed24x65|ufixed24x64|ufixed24x63|ufixed24x62|ufixed24x61|ufixed24x60|ufixed24x59|ufixed24x58|ufixed24x57|ufixed24x56|ufixed192x0|ufixed192x1|ufixed192x2|ufixed192x3|ufixed192x4|ufixed192x5|ufixed192x6|ufixed192x7|ufixed192x8|ufixed192x9|ufixed24x55|ufixed24x54|ufixed24x53|ufixed24x52|ufixed24x51|ufixed24x50|ufixed24x49|ufixed24x48|ufixed24x47|ufixed24x46|ufixed24x45|ufixed24x44|ufixed24x43|ufixed24x42|ufixed24x41|ufixed24x40|ufixed24x39|ufixed24x38|ufixed24x37|ufixed24x36|ufixed24x35|ufixed24x34|ufixed24x33|ufixed24x32|ufixed24x31|ufixed24x30|ufixed24x29|ufixed24x28|ufixed24x27|ufixed24x26|ufixed24x25|ufixed24x24|ufixed24x23|ufixed24x22|ufixed24x21|ufixed24x20|ufixed24x19|ufixed24x18|ufixed24x17|ufixed24x16|ufixed24x15|ufixed24x14|ufixed24x13|ufixed24x12|ufixed24x11|ufixed24x10|ufixed16x42|ufixed16x43|ufixed16x44|ufixed16x45|ufixed16x46|ufixed16x47|ufixed16x48|ufixed16x49|ufixed16x50|ufixed200x0|ufixed200x1|ufixed200x2|ufixed200x3|ufixed200x4|ufixed200x5|ufixed200x6|ufixed200x7|ufixed200x8|ufixed200x9|ufixed16x51|ufixed16x80|ufixed16x79|ufixed16x78|ufixed16x77|ufixed16x76|ufixed16x75|ufixed16x74|ufixed16x73|ufixed16x72|ufixed16x71|ufixed16x70|ufixed16x69|ufixed16x68|ufixed16x67|ufixed16x66|ufixed16x65|ufixed16x64|ufixed16x63|ufixed16x62|ufixed16x61|ufixed16x60|ufixed16x59|ufixed16x58|ufixed16x57|ufixed16x56|ufixed16x55|ufixed16x54|ufixed48x65|ufixed16x52|ufixed56x52|ufixed24x1|ufixed24x2|ufixed24x3|ufixed24x4|ufixed24x5|ufixed24x6|ufixed24x7|ufixed24x8|ufixed24x9|ufixed32x0|ufixed32x1|ufixed32x2|ufixed32x3|ufixed32x4|ufixed32x5|ufixed32x6|ufixed32x7|ufixed32x8|ufixed32x9|ufixed40x0|ufixed40x1|ufixed40x2|ufixed40x3|ufixed40x4|ufixed40x5|ufixed40x6|ufixed40x7|ufixed40x8|ufixed40x9|ufixed48x0|ufixed48x1|ufixed48x2|ufixed48x3|ufixed48x4|ufixed48x5|ufixed48x6|ufixed48x7|ufixed48x8|ufixed48x9|ufixed56x0|ufixed56x1|ufixed56x2|ufixed56x3|ufixed56x4|ufixed56x5|ufixed56x6|ufixed56x7|ufixed56x8|ufixed56x9|ufixed96x9|ufixed64x0|ufixed16x9|ufixed16x8|ufixed16x7|ufixed16x6|ufixed16x5|ufixed16x4|ufixed16x3|ufixed16x2|ufixed16x1|ufixed16x0|ufixed8x80|ufixed8x79|ufixed8x78|ufixed8x77|ufixed64x1|ufixed64x2|ufixed64x3|ufixed64x4|ufixed64x5|ufixed64x6|ufixed64x7|ufixed64x8|ufixed64x9|ufixed72x0|ufixed8x76|ufixed8x75|ufixed8x74|ufixed8x73|ufixed8x72|ufixed8x71|ufixed8x70|ufixed8x69|ufixed8x68|ufixed8x67|ufixed8x66|ufixed8x65|ufixed8x64|ufixed8x63|ufixed8x62|ufixed8x61|ufixed8x60|ufixed8x59|ufixed8x58|ufixed8x57|ufixed96x2|ufixed8x55|ufixed8x54|ufixed8x53|ufixed8x52|ufixed8x51|ufixed8x50|ufixed8x49|ufixed8x48|ufixed8x47|ufixed8x46|ufixed72x1|ufixed72x2|ufixed72x3|ufixed72x4|ufixed72x5|ufixed72x6|ufixed72x7|ufixed72x8|ufixed72x9|ufixed80x0|ufixed8x45|ufixed8x44|ufixed8x43|ufixed8x42|ufixed8x41|ufixed8x40|ufixed8x39|ufixed8x38|ufixed8x37|ufixed8x36|ufixed8x35|ufixed8x34|ufixed8x33|ufixed8x32|ufixed8x31|ufixed8x30|ufixed8x29|ufixed8x28|ufixed8x27|ufixed8x26|ufixed8x25|ufixed8x24|ufixed8x23|ufixed80x1|ufixed80x2|ufixed80x3|ufixed80x4|ufixed80x5|ufixed80x6|ufixed80x7|ufixed80x8|ufixed80x9|ufixed88x0|ufixed8x22|ufixed8x21|ufixed8x20|ufixed8x19|ufixed8x18|ufixed8x17|ufixed8x16|ufixed8x15|ufixed8x14|ufixed8x13|ufixed8x12|ufixed8x11|ufixed8x10|ufixed96x8|ufixed96x7|ufixed88x1|ufixed88x2|ufixed88x3|ufixed88x4|ufixed88x5|ufixed88x6|ufixed88x7|ufixed88x8|ufixed88x9|ufixed96x0|ufixed96x6|ufixed96x5|ufixed96x4|ufixed96x3|ufixed8x56|ufixed96x1|ufixed24x0|ufixed8x2|ufixed8x3|ufixed8x4|ufixed8x5|ufixed8x6|ufixed8x7|ufixed8x8|ufixed8x9|ufixed8x0|ufixed8x1)\b">
130 <token type="KeywordType"/>
131 </rule>
132 </state>
133 <state name="string-parse-double">
134 <rule pattern="&#34;">
135 <token type="LiteralString"/>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="&#39;">
139 <token type="LiteralString"/>
140 </rule>
141 </state>
142 <state name="string-parse-single">
143 <rule pattern="&#39;">
144 <token type="LiteralString"/>
145 <pop depth="1"/>
146 </rule>
147 <rule pattern="&#34;">
148 <token type="LiteralString"/>
149 </rule>
150 </state>
151 <state name="whitespace">
152 <rule pattern="\s+">
153 <token type="Text"/>
154 </rule>
155 </state>
156 <state name="keywords-other">
157 <rule pattern="(continue|returns|storage|memory|delete|return|throw|break|catch|while|else|from|new|try|for|if|is|as|do|in|_)\b">
158 <token type="Keyword"/>
159 </rule>
160 <rule pattern="assembly\b">
161 <token type="Keyword"/>
162 <push state="assembly"/>
163 </rule>
164 <rule pattern="(contract|interface|enum|event|struct)(\s+)([a-zA-Z_]\w*)">
165 <bygroups>
166 <token type="KeywordDeclaration"/>
167 <token type="Text"/>
168 <token type="NameClass"/>
169 </bygroups>
170 </rule>
171 <rule pattern="(function|modifier)(\s+)([a-zA-Z_]\w*)">
172 <bygroups>
173 <token type="KeywordDeclaration"/>
174 <token type="Text"/>
175 <token type="NameFunction"/>
176 </bygroups>
177 </rule>
178 <rule pattern="(constructor|interface|contract|modifier|function|library|mapping|struct|event|enum|var)\b">
179 <token type="KeywordDeclaration"/>
180 </rule>
181 <rule pattern="(abstract|external|internal|private|public)\b">
182 <token type="Keyword"/>
183 </rule>
184 <rule pattern="(anonymous|immutable|constant|override|indexed|payable|virtual|pure|view)\b">
185 <token type="Keyword"/>
186 </rule>
187 <rule pattern="(import|using)\b">
188 <token type="KeywordNamespace"/>
189 </rule>
190 <rule pattern="pragma (solidity|experimental)\b">
191 <token type="Keyword"/>
192 </rule>
193 <rule pattern="(relocatable|implements|unchecked|reference|supports|typedef|promise|default|partial|mutable|switch|typeof|sealed|inline|copyof|define|static|sizeof|alias|final|match|apply|macro|after|auto|null|case|let|of)\b">
194 <token type="KeywordReserved"/>
195 </rule>
196 <rule pattern="(true|false)\b">
197 <token type="KeywordConstant"/>
198 </rule>
199 <rule pattern="(wei|finney|szabo|ether)\b">
200 <token type="KeywordConstant"/>
201 </rule>
202 <rule pattern="(seconds|minutes|hours|days|weeks|years)\b">
203 <token type="KeywordConstant"/>
204 </rule>
205 </state>
206 <state name="comments">
207 <rule pattern="//([\w\W]*?\n)">
208 <token type="CommentSingle"/>
209 </rule>
210 <rule pattern="/[*][\w\W]*?[*]/">
211 <token type="CommentMultiline"/>
212 </rule>
213 <rule pattern="/[*][\w\W]*">
214 <token type="CommentMultiline"/>
215 </rule>
216 </state>
217 <state name="assembly">
218 <rule>
219 <include state="comments"/>
220 </rule>
221 <rule>
222 <include state="numbers"/>
223 </rule>
224 <rule>
225 <include state="strings"/>
226 </rule>
227 <rule>
228 <include state="whitespace"/>
229 </rule>
230 <rule pattern="\{">
231 <token type="Punctuation"/>
232 <push/>
233 </rule>
234 <rule pattern="\}">
235 <token type="Punctuation"/>
236 <pop depth="1"/>
237 </rule>
238 <rule pattern="[(),]">
239 <token type="Punctuation"/>
240 </rule>
241 <rule pattern=":=|=:">
242 <token type="Operator"/>
243 </rule>
244 <rule pattern="(let)(\s*)(\w*\b)">
245 <bygroups>
246 <token type="OperatorWord"/>
247 <token type="Text"/>
248 <token type="NameVariable"/>
249 </bygroups>
250 </rule>
251 <rule pattern="(\w*\b)(\:[^=])">
252 <bygroups>
253 <token type="NameLabel"/>
254 <token type="Punctuation"/>
255 </bygroups>
256 </rule>
257 <rule pattern="(stop|add|mul|sub|div|sdiv|mod|smod|addmod|mulmod|exp|signextend|lt|gt|slt|sgt|eq|iszero|and|or|xor|not|byte|keccak256|sha3|address|balance|origin|caller|callvalue|calldataload|calldatasize|calldatacopy|codesize|codecopy|gasprice|extcodesize|extcodecopy|blockhash|coinbase|timestamp|number|difficulty|gaslimit|pop|mload|mstore|mstore8|sload|sstore|for|switch|jump|jumpi|pc|msize|gas|jumpdest|push1|push2|push32|dup1|dup2|dup16|swap1|swap2|swap16|log0|log1|log4|create|call|callcode|return|delegatecall|suicide|returndatasize|returndatacopy|staticcall|revert|invalid)\b">
258 <token type="NameFunction"/>
259 </rule>
260 <rule pattern="[a-zA-Z_]\w*">
261 <token type="Name"/>
262 </rule>
263 </state>
264 <state name="string-parse-common">
265 <rule pattern="\\(u[0-9a-fA-F]{4}|x..|[^x])">
266 <token type="LiteralStringEscape"/>
267 </rule>
268 <rule pattern="[^\\&#34;\&#39;\n]+">
269 <token type="LiteralString"/>
270 </rule>
271 <rule pattern="\\\n">
272 <token type="LiteralString"/>
273 </rule>
274 <rule pattern="\\">
275 <token type="LiteralString"/>
276 </rule>
277 </state>
278 </rules>
279</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml
new file mode 100644
index 0000000..7dc65af
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sparql.xml
@@ -0,0 +1,160 @@
1<lexer>
2 <config>
3 <name>SPARQL</name>
4 <alias>sparql</alias>
5 <filename>*.rq</filename>
6 <filename>*.sparql</filename>
7 <mime_type>application/sparql-query</mime_type>
8 </config>
9 <rules>
10 <state name="string-escape">
11 <rule pattern="u[0-9A-Fa-f]{4}">
12 <token type="LiteralStringEscape"/>
13 <pop depth="1"/>
14 </rule>
15 <rule pattern="U[0-9A-Fa-f]{8}">
16 <token type="LiteralStringEscape"/>
17 <pop depth="1"/>
18 </rule>
19 <rule pattern=".">
20 <token type="LiteralStringEscape"/>
21 <pop depth="1"/>
22 </rule>
23 </state>
24 <state name="end-of-string">
25 <rule pattern="(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)">
26 <bygroups>
27 <token type="Operator"/>
28 <token type="NameFunction"/>
29 </bygroups>
30 <pop depth="2"/>
31 </rule>
32 <rule pattern="\^\^">
33 <token type="Operator"/>
34 <pop depth="2"/>
35 </rule>
36 <rule>
37 <pop depth="2"/>
38 </rule>
39 </state>
40 <state name="root">
41 <rule pattern="\s+">
42 <token type="Text"/>
43 </rule>
44 <rule pattern="((?i)select|construct|describe|ask|where|filter|group\s+by|minus|distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|offset|bindings|load|clear|drop|create|add|move|copy|insert\s+data|delete\s+data|delete\s+where|delete|insert|using\s+named|using|graph|default|named|all|optional|service|silent|bind|union|not\s+in|in|as|having|to|prefix|base)\b">
45 <token type="Keyword"/>
46 </rule>
47 <rule pattern="(a)\b">
48 <token type="Keyword"/>
49 </rule>
50 <rule pattern="(&lt;(?:[^&lt;&gt;&#34;{}|^`\\\x00-\x20])*&gt;)">
51 <token type="NameLabel"/>
52 </rule>
53 <rule pattern="(_:[_\p{L}\p{N}](?:[-_.\p{L}\p{N}]*[-_\p{L}\p{N}])?)">
54 <token type="NameLabel"/>
55 </rule>
56 <rule pattern="[?$][_\p{L}\p{N}]+">
57 <token type="NameVariable"/>
58 </rule>
59 <rule pattern="([\p{L}][-_.\p{L}\p{N}]*)?(\:)((?:[_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))(?:(?:[-_:.\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%]))*(?:[-_:\p{L}\p{N}]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&amp;&#34;()*+,;=/?#@%])))?)?">
60 <bygroups>
61 <token type="NameNamespace"/>
62 <token type="Punctuation"/>
63 <token type="NameTag"/>
64 </bygroups>
65 </rule>
66 <rule pattern="((?i)str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|contains|strstarts|strends|strbefore|strafter|year|month|day|hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|count|sum|min|max|avg|sample|group_concat|separator)\b">
67 <token type="NameFunction"/>
68 </rule>
69 <rule pattern="(true|false)">
70 <token type="KeywordConstant"/>
71 </rule>
72 <rule pattern="[+\-]?(\d+\.\d*[eE][+-]?\d+|\.?\d+[eE][+-]?\d+)">
73 <token type="LiteralNumberFloat"/>
74 </rule>
75 <rule pattern="[+\-]?(\d+\.\d*|\.\d+)">
76 <token type="LiteralNumberFloat"/>
77 </rule>
78 <rule pattern="[+\-]?\d+">
79 <token type="LiteralNumberInteger"/>
80 </rule>
81 <rule pattern="(\|\||&amp;&amp;|=|\*|\-|\+|/|!=|&lt;=|&gt;=|!|&lt;|&gt;)">
82 <token type="Operator"/>
83 </rule>
84 <rule pattern="[(){}.;,:^\[\]]">
85 <token type="Punctuation"/>
86 </rule>
87 <rule pattern="#[^\n]*">
88 <token type="Comment"/>
89 </rule>
90 <rule pattern="&#34;&#34;&#34;">
91 <token type="LiteralString"/>
92 <push state="triple-double-quoted-string"/>
93 </rule>
94 <rule pattern="&#34;">
95 <token type="LiteralString"/>
96 <push state="single-double-quoted-string"/>
97 </rule>
98 <rule pattern="&#39;&#39;&#39;">
99 <token type="LiteralString"/>
100 <push state="triple-single-quoted-string"/>
101 </rule>
102 <rule pattern="&#39;">
103 <token type="LiteralString"/>
104 <push state="single-single-quoted-string"/>
105 </rule>
106 </state>
107 <state name="triple-double-quoted-string">
108 <rule pattern="&#34;&#34;&#34;">
109 <token type="LiteralString"/>
110 <push state="end-of-string"/>
111 </rule>
112 <rule pattern="[^\\]+">
113 <token type="LiteralString"/>
114 </rule>
115 <rule pattern="\\">
116 <token type="LiteralString"/>
117 <push state="string-escape"/>
118 </rule>
119 </state>
120 <state name="single-double-quoted-string">
121 <rule pattern="&#34;">
122 <token type="LiteralString"/>
123 <push state="end-of-string"/>
124 </rule>
125 <rule pattern="[^&#34;\\\n]+">
126 <token type="LiteralString"/>
127 </rule>
128 <rule pattern="\\">
129 <token type="LiteralString"/>
130 <push state="string-escape"/>
131 </rule>
132 </state>
133 <state name="triple-single-quoted-string">
134 <rule pattern="&#39;&#39;&#39;">
135 <token type="LiteralString"/>
136 <push state="end-of-string"/>
137 </rule>
138 <rule pattern="[^\\]+">
139 <token type="LiteralString"/>
140 </rule>
141 <rule pattern="\\">
142 <token type="LiteralStringEscape"/>
143 <push state="string-escape"/>
144 </rule>
145 </state>
146 <state name="single-single-quoted-string">
147 <rule pattern="&#39;">
148 <token type="LiteralString"/>
149 <push state="end-of-string"/>
150 </rule>
151 <rule pattern="[^&#39;\\\n]+">
152 <token type="LiteralString"/>
153 </rule>
154 <rule pattern="\\">
155 <token type="LiteralString"/>
156 <push state="string-escape"/>
157 </rule>
158 </state>
159 </rules>
160</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml
new file mode 100644
index 0000000..b542b65
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/sql.xml
@@ -0,0 +1,90 @@
1<lexer>
2 <config>
3 <name>SQL</name>
4 <alias>sql</alias>
5 <filename>*.sql</filename>
6 <mime_type>text/x-sql</mime_type>
7 <case_insensitive>true</case_insensitive>
8 <not_multiline>true</not_multiline>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="\s+">
13 <token type="TextWhitespace"/>
14 </rule>
15 <rule pattern="--.*\n?">
16 <token type="CommentSingle"/>
17 </rule>
18 <rule pattern="/\*">
19 <token type="CommentMultiline"/>
20 <push state="multiline-comments"/>
21 </rule>
22 <rule pattern="&#39;">
23 <token type="LiteralStringSingle"/>
24 <push state="string"/>
25 </rule>
26 <rule pattern="&#34;">
27 <token type="LiteralStringDouble"/>
28 <push state="double-string"/>
29 </rule>
30 <rule pattern="(DATETIME_INTERVAL_PRECISION|PARAMETER_SPECIFIC_CATALOG|PARAMATER_ORDINAL_POSITION|USER_DEFINED_TYPE_CATALOG|PARAMATER_SPECIFIC_SCHEMA|TRANSACTIONS_ROLLED_BACK|USER_DEFINED_TYPE_SCHEMA|PARAMETER_SPECIFIC_NAME|DATETIME_INTERVAL_CODE|TRANSACTIONS_COMMITTED|USER_DEFINED_TYPE_NAME|CHARACTER_SET_CATALOG|DYNAMIC_FUNCTION_CODE|COMMAND_FUNCTION_CODE|RETURNED_OCTET_LENGTH|MESSAGE_OCTET_LENGTH|CHARACTER_SET_SCHEMA|CONSTRAINT_CATALOG|TRANSACTION_ACTIVE|CHARACTER_SET_NAME|CURRENT_TIMESTAMP|CONSTRAINT_SCHEMA|COLLATION_CATALOG|RETURNED_SQLSTATE|DYNAMIC_FUNCTION|CONDITION_NUMBER|CHARACTER_LENGTH|COMMAND_FUNCTION|COLLATION_SCHEMA|CHARACTERISTICS|TRIGGER_CATALOG|CONNECTION_NAME|SUBCLASS_ORIGIN|RETURNED_LENGTH|TIMEZONE_MINUTE|CONSTRAINT_NAME|ROUTINE_CATALOG|TRIGGER_SCHEMA|ROUTINE_SCHEMA|LOCALTIMESTAMP|IMPLEMENTATION|PARAMATER_NAME|MESSAGE_LENGTH|PARAMETER_MODE|COLLATION_NAME|TIMEZONE_HOUR|SPECIFIC_NAME|DETERMINISTIC|CORRESPONTING|AUTHORIZATION|INSTANTIABLE|CURRENT_TIME|CURRENT_USER|ROUTINE_NAME|NOCREATEUSER|MESSAGE_TEXT|SQLEXCEPTION|CATALOG_NAME|SESSION_USER|CLASS_ORIGIN|CURRENT_ROLE|SPECIFICTYPE|SERIALIZABLE|CURRENT_DATE|OCTET_LENGTH|CURRENT_PATH|TRIGGER_NAME|CHAR_LENGTH|SYSTEM_USER|REFERENCING|UNENCRYPTED|COLUMN_NAME|SQLWARNINIG|DIAGNOSTICS|CURSOR_NAME|SERVER_NAME|INSENSITIVE|SCHEMA_NAME|UNCOMMITTED|TRANSACTION|CONSTRUCTOR|LANCOMPILER|CARDINALITY|CONSTRAINTS|TRANSLATION|CHECKPOINT|CONSTRAINT|CONNECTION|PRIVILEGES|COMPLETION|CONVERSION|DELIMITERS|TABLE_NAME|INDITCATOR|INITIALIZE|DESCRIPTOR|REPEATABLE|CREATEUSER|DEFERRABLE|DESTRUCTOR|PROCEDURAL|DICTIONARY|DISCONNECT|TRANSFORMS|KEY_MEMBER|BIT_LENGTH|ASYMMETRIC|ASSIGNMENT|ASENSITIVE|OVERRIDING|PARAMETERS|REFERENCES|ORDINALITY|NOCREATEDB|STATISTICS|DEALLOCATE|SAVE_POINT|RECURSIVE|STRUCTURE|SUBSTRING|IMMEDIATE|GENERATED|SYMMETRIC|STATEMENT|INCREMENT|IMMUTABLE|INCLUDING|COMMITTED|TEMPORARY|INITIALLY|TERMINATE|PRECISION|DELIMITER|TIMESTAMP|INTERSECT|ISOLATION|TRANSFORM|TRANSLATE|ROW_COUNT|ASSERTION|PARAMETER|EXCLUSIVE|LOCALTIME|VALIDATOR|AGGREGATE|EXCLUDING|SENSITIVE|EXCEPTION|ENCRYPTED|OPERATION|HIERARCHY|COLLATION|PROCEDURE|CONTINUE|ENCODING|MINVALUE|SPECIFIC|ABSOLUTE|SECURITY|WHENEVER|EXISTING|VOLATILE|MAXVALUE|EXTERNAL|NULLABLE|VARIABLE|SQLERROR|DISTINCT|DISPATCH|END-EXEC|LOCATION|ALLOCATE|OVERLAPS|UNLISTEN|ROLLBACK|TRUNCATE|DESCRIBE|SQLSTATE|BACKWARD|FUNCTION|LANGUAGE|KEY_TYPE|CASCADED|POSITION|TRAILING|DEFERRED|RELATIVE|DEFAULTS|COALSECE|PREORDER|GROUPING|MODIFIES|INHERITS|PRESERVE|DATABASE|RESTRICT|IDENTITY|TEMPLATE|NATIONAL|CONTAINS|CREATEDB|IMPLICIT|OPERATOR|CONVERT|CURRENT|CONNECT|RECHECK|PRIMARY|STORAGE|DECLARE|DEFAULT|HANDLER|COLLATE|PREPARE|REINDEX|GRANTED|CHECKED|POSTFIX|REPLACE|INSTEAD|CATALOG|RESTART|INVOKER|PLACING|PENDANT|DEFINED|ITERATE|PARTIAL|CASCADE|BREADTH|GENERAL|TRIGGER|SESSION|BETWEEN|DEFINER|LATERAL|LEADING|RETURNS|TRUSTED|UNKNOWN|FORWARD|UNNAMED|OVERLAY|FORTRAN|ANALYZE|OPTIONS|ANALYSE|FOREIGN|ROUTINE|LOCATOR|DESTROY|SUBLIST|VERBOSE|EXTRACT|NOTNULL|EXPLAIN|VERSION|SQLCODE|EXECUTE|NOTHING|DYNAMIC|WITHOUT|SIMILAR|NATURAL|COMMENT|CLUSTER|PASCAL|SOURCE|EQUALS|CALLED|ESCAPE|EXCEPT|SELECT|ISNULL|DOMAIN|SEARCH|SCROLL|SIMPLE|BITVAR|MINUTE|EXISTS|SCHEMA|ATOMIC|METHOD|NOTIFY|ACCESS|UNIQUE|ROLLUP|NULLIF|OBJECT|STABLE|COLUMN|REVOKE|OFFSET|COMMIT|MODIFY|FREEZE|DELETE|RETURN|RESULT|UNNEST|OPTION|GLOBAL|VALUES|RENAME|SYSTEM|STATIC|UPDATE|OUTPUT|LISTEN|STDOUT|STRICT|PUBLIC|IGNORE|PREFIX|SECOND|CREATE|LENGTH|BEFORE|HAVING|INSERT|VACUUM|CURSOR|ELSIF|USING|ALTER|STYPE|CYCLE|LARGE|INPUT|CROSS|INOUT|INNER|INFIX|INDEX|LEVEL|USAGE|ILIKE|VALID|OWNER|GRANT|READS|UPPER|LIMIT|OUTER|STDIN|SYSID|GROUP|ALIAS|ORDER|UNTIL|LOCAL|RESET|START|COUNT|LOWER|TABLE| TEMP|PRIOR|AFTER|STATE|ADMIN|RIGHT|COBOL|FOUND|MATCH|FORCE|ABORT|FIRST|FINAL|CLOSE|DEREF|FETCH|WHERE|FALSE|SCALE|BEGIN|CLASS|TOAST|WRITE|NCLOB|NCHAR|CHECK|CHAIN|SPACE|NAMES|EVERY|MUMPS|CACHE|UNION|UNDER|SETOF|MONTH|SHARE|SCOPE|TREAT|SHOW|SIZE|SOME|SETS|SELF|ELSE|EACH|DROP|TYPE|FROM|RULE|DESC|ROWS|ZONE|ROLE|TRUE|FREE|FULL|GOTO|TRIM|HOLD|HOST|DATA|READ|INTO|USER|JOIN|CUBE|LAST|LEFT|LESS|LIKE|LOAD|LOCK|OPEN|COPY|ONLY|OIDS|VIEW|WHEN|THAN|THEN|NULL|NONE|WITH|WORK|NEXT|YEAR|MODE|CAST|CASE|MOVE|CALL|MORE|BOTH|EXEC|CLOB|OUT|MOD|ARE|SUM|DAY|GET|AVG|NEW|SQL|ABS|MIN|ASC|END|ROW|NOT|FOR|ANY|PLI|MAX|REF|MAP|ADA|KEY|AND|ADD|ALL|OLD|OFF|PAD|SET|OR|ON|TO|IS|OF|IN|IF|GO|AS|DO|AT|NO|BY|C|G)\b">
31 <token type="Keyword"/>
32 </rule>
33 <rule pattern="(CHARACTER|SMALLINT|INTERVAL|DECIMAL|SERIAL8|VARYING|BOOLEAN|VARCHAR|INTEGER|NUMERIC|SERIAL|BINARY|BIGINT|NUMBER|FLOAT|ARRAY|TEXT|REAL|INT8|DATE|CHAR|BLOB|DEC|BIT|INT)\b">
34 <token type="NameBuiltin"/>
35 </rule>
36 <rule pattern="[+*/&lt;&gt;=~!@#%^&amp;|`?-]">
37 <token type="Operator"/>
38 </rule>
39 <rule pattern="[0-9]+">
40 <token type="LiteralNumberInteger"/>
41 </rule>
42 <rule pattern="[a-z_][\w$]*">
43 <token type="Name"/>
44 </rule>
45 <rule pattern="[;:()\[\],.]">
46 <token type="Punctuation"/>
47 </rule>
48 </state>
49 <state name="multiline-comments">
50 <rule pattern="/\*">
51 <token type="CommentMultiline"/>
52 <push state="multiline-comments"/>
53 </rule>
54 <rule pattern="\*/">
55 <token type="CommentMultiline"/>
56 <pop depth="1"/>
57 </rule>
58 <rule pattern="[^/*]+">
59 <token type="CommentMultiline"/>
60 </rule>
61 <rule pattern="[/*]">
62 <token type="CommentMultiline"/>
63 </rule>
64 </state>
65 <state name="string">
66 <rule pattern="[^&#39;]+">
67 <token type="LiteralStringSingle"/>
68 </rule>
69 <rule pattern="&#39;&#39;">
70 <token type="LiteralStringSingle"/>
71 </rule>
72 <rule pattern="&#39;">
73 <token type="LiteralStringSingle"/>
74 <pop depth="1"/>
75 </rule>
76 </state>
77 <state name="double-string">
78 <rule pattern="[^&#34;]+">
79 <token type="LiteralStringDouble"/>
80 </rule>
81 <rule pattern="&#34;&#34;">
82 <token type="LiteralStringDouble"/>
83 </rule>
84 <rule pattern="&#34;">
85 <token type="LiteralStringDouble"/>
86 <pop depth="1"/>
87 </rule>
88 </state>
89 </rules>
90</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml
new file mode 100644
index 0000000..cbd8dbc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/squidconf.xml
@@ -0,0 +1,63 @@
1<lexer>
2 <config>
3 <name>SquidConf</name>
4 <alias>squidconf</alias>
5 <alias>squid.conf</alias>
6 <alias>squid</alias>
7 <filename>squid.conf</filename>
8 <mime_type>text/x-squidconf</mime_type>
9 <case_insensitive>true</case_insensitive>
10 <not_multiline>true</not_multiline>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern="\s+">
15 <token type="TextWhitespace"/>
16 </rule>
17 <rule pattern="#">
18 <token type="Comment"/>
19 <push state="comment"/>
20 </rule>
21 <rule pattern="\b(redirect_rewrites_host_header|httpd_accel_uses_host_header|high_response_time_warning|delay_initial_bucket_level|memory_replacement_policy|maximum_single_addr_tries|cahce_replacement_policy|store_objects_per_bucket|mcast_icp_query_timeout|high_page_fault_warning|cache_stoplist_pattern|httpd_accel_with_proxy|request_body_max_size|authenticate_children|minimum_retry_timeout|incoming_http_average|store_avg_object_size|snmp_incoming_address|cache_effective_group|mcast_miss_encode_key|neighbor_type_domain|cache_effective_user|single_parent_bypass|tcp_incoming_address|udp_outgoing_address|tcp_outgoing_address|incoming_icp_average|udp_incoming_address|authenticate_program|minimum_object_size|ident_lookup_access|minimum_direct_hops|maximum_object_size|half_closed_clients|range_offset_limit|forward_snmpd_port|memory_pools_limit|siteselect_timeout|hierarchy_stoplist|netdb_ping_period|strip_query_terms|test_reachability|shutdown_lifetime|redirect_children|min_http_poll_cnt|cache_dns_program|anonymize_headers|dead_peer_timeout|cache_host_domain|emulate_httpd_log|http_reply_access|passthrough_proxy|icp_query_timeout|cache_peer_access|tcp_recv_bufsize|neighbor_timeout|negative_dns_ttl|min_icp_poll_cnt|swap_level1_dirs|visible_hostname|positive_dns_ttl|swap_level2_dirs|auth_param_basic|delay_parameters|proxy_auth_realm|redirect_program|udp_hit_obj_size|cache_access_log|httpd_accel_port|httpd_accel_host|authenticate_ttl|netdb_ping_rate|wais_relay_host|wais_relay_port|dns_nameservers|cache_swap_high|cache_store_log|request_timeout|refresh_pattern|http_anonymizer|announce_period|client_lifetime|as_whois_server|mcast_miss_port|mcast_miss_addr|reload_into_ims|cachemgr_passwd|log_icp_queries|connect_timeout|quick_abort_max|quick_abort_min|quick_abort_pct|unique_hostname|inside_firewall|unlinkd_program|fake_user_agent|ftpget_program|uri_whitespace|cache_announce|ftpget_options|cache_mem_high|cache_swap_low|logfile_rotate|cache_swap_log|fqdncache_size|pinger_program|client_netmask|header_replace|ftp_list_width|cache_host_acl|cache_stoplist|announce_port|prefer_direct|useragent_log|buffered_logs|append_domain|log_mime_hdrs|err_html_text|dns_testnames|forwarded_for|reference_age|announce_host|pconn_timeout|icp_hit_stale|always_direct|cache_mem_low|debug_options|header_access|ident_timeout|ipcache_size|request_size|never_direct|dns_children|negative_ttl|coredump_dir|pid_filename|delay_access|memory_pools|mcast_groups|dns_defnames|ident_lookup|ipcache_high|read_timeout|broken_posts|local_domain|ftp_passive|ipcache_low|quick_abort|delay_pools|announce_to|source_ping|delay_class|firewall_ip|miss_access|http_access|udp_hit_obj|snmp_access|httpd_accel|mime_table|proxy_auth|cache_peer|netdb_high|icp_access|hosts_file|cache_host|cache_swap|wais_relay|query_icmp|access_log|cache_dir|snmp_port|deny_info|client_db|cache_mem|http_port|htcp_port|cache_mgr|cache_log|ssl_proxy|netdb_low|ftp_user|local_ip|log_fqdn|no_cache|icp_port|acl)\b">
22 <token type="Keyword"/>
23 </rule>
24 <rule pattern="\b(multicast-responder|offline_toggle|credentialsttl|round-robin|proxy-only|no-digest|no-query|children|disable|default|weight|parent|diskd|allow|realm|deny|heap|none|via|all|ttl|off|lru|on|q2|q1)\b">
25 <token type="NameConstant"/>
26 </rule>
27 <rule pattern="\b(server_list|client_list|squid\.conf|parameter|shutdown|info)\b">
28 <token type="LiteralString"/>
29 </rule>
30 <rule pattern="stats/(filedescriptors|reply_headers|utilization|redirector|vm_objects|fqdncache|objects|ipcache|netdb|dns|io)\b">
31 <token type="LiteralString"/>
32 </rule>
33 <rule pattern="log/(disable|status|enable|clear)=">
34 <token type="LiteralString"/>
35 </rule>
36 <rule pattern="\b(snmp_community|rep_mime_type|urlpath_regex|referer_regex|req_mime_type|dstdomain|url_regex|browser|method|proto|ident|time|port|user|src|dst)\b">
37 <token type="Keyword"/>
38 </rule>
39 <rule pattern="(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)){6}(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!:)|(?&lt;=:)(?&lt;!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))(?:/(?:(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)){6}(?:[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!::):)[0-9a-f]{0,4}(?:(?&lt;=::)|(?&lt;!:)|(?&lt;=:)(?&lt;!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|\b\d+\b))?">
40 <token type="LiteralNumberFloat"/>
41 </rule>
42 <rule pattern="(?:\b\d+\b(?:-\b\d+|%)?)">
43 <token type="LiteralNumber"/>
44 </rule>
45 <rule pattern="\S+">
46 <token type="Text"/>
47 </rule>
48 </state>
49 <state name="comment">
50 <rule pattern="\s*TAG:.*">
51 <token type="LiteralStringEscape"/>
52 <pop depth="1"/>
53 </rule>
54 <rule pattern=".+">
55 <token type="Comment"/>
56 <pop depth="1"/>
57 </rule>
58 <rule>
59 <pop depth="1"/>
60 </rule>
61 </state>
62 </rules>
63</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml
new file mode 100644
index 0000000..39cf4f2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/standard_ml.xml
@@ -0,0 +1,548 @@
1<lexer>
2 <config>
3 <name>Standard ML</name>
4 <alias>sml</alias>
5 <filename>*.sml</filename>
6 <filename>*.sig</filename>
7 <filename>*.fun</filename>
8 <mime_type>text/x-standardml</mime_type>
9 <mime_type>application/x-standardml</mime_type>
10 </config>
11 <rules>
12 <state name="delimiters">
13 <rule pattern="\(|\[|\{">
14 <token type="Punctuation"/>
15 <push state="main"/>
16 </rule>
17 <rule pattern="\)|\]|\}">
18 <token type="Punctuation"/>
19 <pop depth="1"/>
20 </rule>
21 <rule pattern="\b(let|if|local)\b(?!\&#39;)">
22 <token type="KeywordReserved"/>
23 <push state="main" state="main"/>
24 </rule>
25 <rule pattern="\b(struct|sig|while)\b(?!\&#39;)">
26 <token type="KeywordReserved"/>
27 <push state="main"/>
28 </rule>
29 <rule pattern="\b(do|else|end|in|then)\b(?!\&#39;)">
30 <token type="KeywordReserved"/>
31 <pop depth="1"/>
32 </rule>
33 </state>
34 <state name="root">
35 <rule>
36 <push state="main"/>
37 </rule>
38 </state>
39 <state name="breakout">
40 <rule pattern="(?=\b(where|do|handle|if|sig|op|while|case|as|else|signature|andalso|struct|infixr|functor|in|structure|then|local|rec|end|fun|of|orelse|val|include|fn|with|exception|let|and|infix|sharing|datatype|type|abstype|withtype|eqtype|nonfix|raise|open)\b(?!\&#39;))">
41 <token type="Text"/>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="tyvarseq">
46 <rule pattern="\s">
47 <token type="Text"/>
48 </rule>
49 <rule pattern="\(\*">
50 <token type="CommentMultiline"/>
51 <push state="comment"/>
52 </rule>
53 <rule pattern="\&#39;[\w\&#39;]*">
54 <token type="NameDecorator"/>
55 </rule>
56 <rule pattern="[a-zA-Z][\w&#39;]*">
57 <token type="Name"/>
58 </rule>
59 <rule pattern=",">
60 <token type="Punctuation"/>
61 </rule>
62 <rule pattern="\)">
63 <token type="Punctuation"/>
64 <pop depth="1"/>
65 </rule>
66 <rule pattern="[!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+">
67 <token type="Name"/>
68 </rule>
69 </state>
70 <state name="char">
71 <rule pattern="[^&#34;\\]">
72 <token type="LiteralStringChar"/>
73 </rule>
74 <rule pattern="\\[\\&#34;abtnvfr]">
75 <token type="LiteralStringEscape"/>
76 </rule>
77 <rule pattern="\\\^[\x40-\x5e]">
78 <token type="LiteralStringEscape"/>
79 </rule>
80 <rule pattern="\\[0-9]{3}">
81 <token type="LiteralStringEscape"/>
82 </rule>
83 <rule pattern="\\u[0-9a-fA-F]{4}">
84 <token type="LiteralStringEscape"/>
85 </rule>
86 <rule pattern="\\\s+\\">
87 <token type="LiteralStringInterpol"/>
88 </rule>
89 <rule pattern="&#34;">
90 <token type="LiteralStringChar"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 <state name="datbind">
95 <rule>
96 <include state="whitespace"/>
97 </rule>
98 <rule pattern="\b(and)\b(?!\&#39;)">
99 <token type="KeywordReserved"/>
100 <push state="#pop" state="dname"/>
101 </rule>
102 <rule pattern="\b(withtype)\b(?!\&#39;)">
103 <token type="KeywordReserved"/>
104 <push state="#pop" state="tname"/>
105 </rule>
106 <rule pattern="\b(of)\b(?!\&#39;)">
107 <token type="KeywordReserved"/>
108 </rule>
109 <rule pattern="(\|)(\s*)([a-zA-Z][\w&#39;]*)">
110 <bygroups>
111 <token type="Punctuation"/>
112 <token type="Text"/>
113 <token type="NameClass"/>
114 </bygroups>
115 </rule>
116 <rule pattern="(\|)(\s+)([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
117 <bygroups>
118 <token type="Punctuation"/>
119 <token type="Text"/>
120 <token type="NameClass"/>
121 </bygroups>
122 </rule>
123 <rule>
124 <include state="breakout"/>
125 </rule>
126 <rule>
127 <include state="core"/>
128 </rule>
129 <rule pattern="\S+">
130 <token type="Error"/>
131 </rule>
132 </state>
133 <state name="string">
134 <rule pattern="[^&#34;\\]">
135 <token type="LiteralStringDouble"/>
136 </rule>
137 <rule pattern="\\[\\&#34;abtnvfr]">
138 <token type="LiteralStringEscape"/>
139 </rule>
140 <rule pattern="\\\^[\x40-\x5e]">
141 <token type="LiteralStringEscape"/>
142 </rule>
143 <rule pattern="\\[0-9]{3}">
144 <token type="LiteralStringEscape"/>
145 </rule>
146 <rule pattern="\\u[0-9a-fA-F]{4}">
147 <token type="LiteralStringEscape"/>
148 </rule>
149 <rule pattern="\\\s+\\">
150 <token type="LiteralStringInterpol"/>
151 </rule>
152 <rule pattern="&#34;">
153 <token type="LiteralStringDouble"/>
154 <pop depth="1"/>
155 </rule>
156 </state>
157 <state name="tname">
158 <rule>
159 <include state="whitespace"/>
160 </rule>
161 <rule>
162 <include state="breakout"/>
163 </rule>
164 <rule pattern="\&#39;[\w\&#39;]*">
165 <token type="NameDecorator"/>
166 </rule>
167 <rule pattern="\(">
168 <token type="Punctuation"/>
169 <push state="tyvarseq"/>
170 </rule>
171 <rule pattern="=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
172 <token type="Punctuation"/>
173 <push state="#pop" state="typbind"/>
174 </rule>
175 <rule pattern="([a-zA-Z][\w&#39;]*)">
176 <token type="KeywordType"/>
177 </rule>
178 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
179 <token type="KeywordType"/>
180 </rule>
181 <rule pattern="\S+">
182 <token type="Error"/>
183 <pop depth="1"/>
184 </rule>
185 </state>
186 <state name="dname">
187 <rule>
188 <include state="whitespace"/>
189 </rule>
190 <rule>
191 <include state="breakout"/>
192 </rule>
193 <rule pattern="\&#39;[\w\&#39;]*">
194 <token type="NameDecorator"/>
195 </rule>
196 <rule pattern="\(">
197 <token type="Punctuation"/>
198 <push state="tyvarseq"/>
199 </rule>
200 <rule pattern="(=)(\s*)(datatype)">
201 <bygroups>
202 <token type="Punctuation"/>
203 <token type="Text"/>
204 <token type="KeywordReserved"/>
205 </bygroups>
206 <pop depth="1"/>
207 </rule>
208 <rule pattern="=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
209 <token type="Punctuation"/>
210 <push state="#pop" state="datbind" state="datcon"/>
211 </rule>
212 <rule pattern="([a-zA-Z][\w&#39;]*)">
213 <token type="KeywordType"/>
214 </rule>
215 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
216 <token type="KeywordType"/>
217 </rule>
218 <rule pattern="\S+">
219 <token type="Error"/>
220 <pop depth="1"/>
221 </rule>
222 </state>
223 <state name="typbind">
224 <rule>
225 <include state="whitespace"/>
226 </rule>
227 <rule pattern="\b(and)\b(?!\&#39;)">
228 <token type="KeywordReserved"/>
229 <push state="#pop" state="tname"/>
230 </rule>
231 <rule>
232 <include state="breakout"/>
233 </rule>
234 <rule>
235 <include state="core"/>
236 </rule>
237 <rule pattern="\S+">
238 <token type="Error"/>
239 <pop depth="1"/>
240 </rule>
241 </state>
242 <state name="ename">
243 <rule>
244 <include state="whitespace"/>
245 </rule>
246 <rule pattern="(exception|and)\b(\s+)([a-zA-Z][\w&#39;]*)">
247 <bygroups>
248 <token type="KeywordReserved"/>
249 <token type="Text"/>
250 <token type="NameClass"/>
251 </bygroups>
252 </rule>
253 <rule pattern="(exception|and)\b(\s*)([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
254 <bygroups>
255 <token type="KeywordReserved"/>
256 <token type="Text"/>
257 <token type="NameClass"/>
258 </bygroups>
259 </rule>
260 <rule pattern="\b(of)\b(?!\&#39;)">
261 <token type="KeywordReserved"/>
262 </rule>
263 <rule>
264 <include state="breakout"/>
265 </rule>
266 <rule>
267 <include state="core"/>
268 </rule>
269 <rule pattern="\S+">
270 <token type="Error"/>
271 </rule>
272 </state>
273 <state name="vname">
274 <rule>
275 <include state="whitespace"/>
276 </rule>
277 <rule pattern="\&#39;[\w\&#39;]*">
278 <token type="NameDecorator"/>
279 </rule>
280 <rule pattern="\(">
281 <token type="Punctuation"/>
282 <push state="tyvarseq"/>
283 </rule>
284 <rule pattern="([a-zA-Z][\w&#39;]*)(\s*)(=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+))">
285 <bygroups>
286 <token type="NameVariable"/>
287 <token type="Text"/>
288 <token type="Punctuation"/>
289 </bygroups>
290 <pop depth="1"/>
291 </rule>
292 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)(\s*)(=(?![!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+))">
293 <bygroups>
294 <token type="NameVariable"/>
295 <token type="Text"/>
296 <token type="Punctuation"/>
297 </bygroups>
298 <pop depth="1"/>
299 </rule>
300 <rule pattern="([a-zA-Z][\w&#39;]*)">
301 <token type="NameVariable"/>
302 <pop depth="1"/>
303 </rule>
304 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
305 <token type="NameVariable"/>
306 <pop depth="1"/>
307 </rule>
308 <rule>
309 <pop depth="1"/>
310 </rule>
311 </state>
312 <state name="sname">
313 <rule>
314 <include state="whitespace"/>
315 </rule>
316 <rule>
317 <include state="breakout"/>
318 </rule>
319 <rule pattern="([a-zA-Z][\w&#39;]*)">
320 <token type="NameNamespace"/>
321 </rule>
322 <rule>
323 <pop depth="1"/>
324 </rule>
325 </state>
326 <state name="main-fun">
327 <rule>
328 <include state="whitespace"/>
329 </rule>
330 <rule pattern="\s">
331 <token type="Text"/>
332 </rule>
333 <rule pattern="\(\*">
334 <token type="CommentMultiline"/>
335 <push state="comment"/>
336 </rule>
337 <rule pattern="\b(fun|and)\b(?!\&#39;)">
338 <token type="KeywordReserved"/>
339 <push state="fname"/>
340 </rule>
341 <rule pattern="\b(val)\b(?!\&#39;)">
342 <token type="KeywordReserved"/>
343 <push state="#pop" state="main" state="vname"/>
344 </rule>
345 <rule pattern="\|">
346 <token type="Punctuation"/>
347 <push state="fname"/>
348 </rule>
349 <rule pattern="\b(case|handle)\b(?!\&#39;)">
350 <token type="KeywordReserved"/>
351 <push state="#pop" state="main"/>
352 </rule>
353 <rule>
354 <include state="delimiters"/>
355 </rule>
356 <rule>
357 <include state="core"/>
358 </rule>
359 <rule pattern="\S+">
360 <token type="Error"/>
361 </rule>
362 </state>
363 <state name="datcon">
364 <rule>
365 <include state="whitespace"/>
366 </rule>
367 <rule pattern="([a-zA-Z][\w&#39;]*)">
368 <token type="NameClass"/>
369 <pop depth="1"/>
370 </rule>
371 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
372 <token type="NameClass"/>
373 <pop depth="1"/>
374 </rule>
375 <rule pattern="\S+">
376 <token type="Error"/>
377 <pop depth="1"/>
378 </rule>
379 </state>
380 <state name="dotted">
381 <rule pattern="([a-zA-Z][\w&#39;]*)(\.)">
382 <token type="NameNamespace"/>
383 </rule>
384 <rule pattern="([a-zA-Z][\w&#39;]*)">
385 <token type="Name"/>
386 <pop depth="1"/>
387 </rule>
388 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
389 <token type="Name"/>
390 <pop depth="1"/>
391 </rule>
392 <rule pattern="\s+">
393 <token type="Error"/>
394 </rule>
395 <rule pattern="\S+">
396 <token type="Error"/>
397 </rule>
398 </state>
399 <state name="main">
400 <rule>
401 <include state="whitespace"/>
402 </rule>
403 <rule pattern="\b(val|and)\b(?!\&#39;)">
404 <token type="KeywordReserved"/>
405 <push state="vname"/>
406 </rule>
407 <rule pattern="\b(fun)\b(?!\&#39;)">
408 <token type="KeywordReserved"/>
409 <push state="#pop" state="main-fun" state="fname"/>
410 </rule>
411 <rule>
412 <include state="delimiters"/>
413 </rule>
414 <rule>
415 <include state="core"/>
416 </rule>
417 <rule pattern="\S+">
418 <token type="Error"/>
419 </rule>
420 </state>
421 <state name="comment">
422 <rule pattern="[^(*)]">
423 <token type="CommentMultiline"/>
424 </rule>
425 <rule pattern="\(\*">
426 <token type="CommentMultiline"/>
427 <push/>
428 </rule>
429 <rule pattern="\*\)">
430 <token type="CommentMultiline"/>
431 <pop depth="1"/>
432 </rule>
433 <rule pattern="[(*)]">
434 <token type="CommentMultiline"/>
435 </rule>
436 </state>
437 <state name="whitespace">
438 <rule pattern="\s+">
439 <token type="Text"/>
440 </rule>
441 <rule pattern="\(\*">
442 <token type="CommentMultiline"/>
443 <push state="comment"/>
444 </rule>
445 </state>
446 <state name="core">
447 <rule pattern="(_|\}|\{|\)|;|,|\[|\(|\]|\.\.\.)">
448 <token type="Punctuation"/>
449 </rule>
450 <rule pattern="#&#34;">
451 <token type="LiteralStringChar"/>
452 <push state="char"/>
453 </rule>
454 <rule pattern="&#34;">
455 <token type="LiteralStringDouble"/>
456 <push state="string"/>
457 </rule>
458 <rule pattern="~?0x[0-9a-fA-F]+">
459 <token type="LiteralNumberHex"/>
460 </rule>
461 <rule pattern="0wx[0-9a-fA-F]+">
462 <token type="LiteralNumberHex"/>
463 </rule>
464 <rule pattern="0w\d+">
465 <token type="LiteralNumberInteger"/>
466 </rule>
467 <rule pattern="~?\d+\.\d+[eE]~?\d+">
468 <token type="LiteralNumberFloat"/>
469 </rule>
470 <rule pattern="~?\d+\.\d+">
471 <token type="LiteralNumberFloat"/>
472 </rule>
473 <rule pattern="~?\d+[eE]~?\d+">
474 <token type="LiteralNumberFloat"/>
475 </rule>
476 <rule pattern="~?\d+">
477 <token type="LiteralNumberInteger"/>
478 </rule>
479 <rule pattern="#\s*[1-9][0-9]*">
480 <token type="NameLabel"/>
481 </rule>
482 <rule pattern="#\s*([a-zA-Z][\w&#39;]*)">
483 <token type="NameLabel"/>
484 </rule>
485 <rule pattern="#\s+([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
486 <token type="NameLabel"/>
487 </rule>
488 <rule pattern="\b(datatype|abstype)\b(?!\&#39;)">
489 <token type="KeywordReserved"/>
490 <push state="dname"/>
491 </rule>
492 <rule pattern="(?=\b(exception)\b(?!\&#39;))">
493 <token type="Text"/>
494 <push state="ename"/>
495 </rule>
496 <rule pattern="\b(functor|include|open|signature|structure)\b(?!\&#39;)">
497 <token type="KeywordReserved"/>
498 <push state="sname"/>
499 </rule>
500 <rule pattern="\b(type|eqtype)\b(?!\&#39;)">
501 <token type="KeywordReserved"/>
502 <push state="tname"/>
503 </rule>
504 <rule pattern="\&#39;[\w\&#39;]*">
505 <token type="NameDecorator"/>
506 </rule>
507 <rule pattern="([a-zA-Z][\w&#39;]*)(\.)">
508 <token type="NameNamespace"/>
509 <push state="dotted"/>
510 </rule>
511 <rule pattern="\b(abstype|and|andalso|as|case|datatype|do|else|end|exception|fn|fun|handle|if|in|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|then|type|val|with|withtype|while|eqtype|functor|include|sharing|sig|signature|struct|structure|where)\b">
512 <token type="KeywordReserved"/>
513 </rule>
514 <rule pattern="([a-zA-Z][\w&#39;]*)">
515 <token type="Name"/>
516 </rule>
517 <rule pattern="\b(:|\|,=|=&gt;|-&gt;|#|:&gt;)\b">
518 <token type="KeywordReserved"/>
519 </rule>
520 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
521 <token type="Name"/>
522 </rule>
523 </state>
524 <state name="fname">
525 <rule>
526 <include state="whitespace"/>
527 </rule>
528 <rule pattern="\&#39;[\w\&#39;]*">
529 <token type="NameDecorator"/>
530 </rule>
531 <rule pattern="\(">
532 <token type="Punctuation"/>
533 <push state="tyvarseq"/>
534 </rule>
535 <rule pattern="([a-zA-Z][\w&#39;]*)">
536 <token type="NameFunction"/>
537 <pop depth="1"/>
538 </rule>
539 <rule pattern="([!%&amp;$#+\-/:&lt;=&gt;?@\\~`^|*]+)">
540 <token type="NameFunction"/>
541 <pop depth="1"/>
542 </rule>
543 <rule>
544 <pop depth="1"/>
545 </rule>
546 </state>
547 </rules>
548</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml
new file mode 100644
index 0000000..c2d8807
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/stylus.xml
@@ -0,0 +1,132 @@
1<lexer>
2 <config>
3 <name>Stylus</name>
4 <alias>stylus</alias>
5 <filename>*.styl</filename>
6 <mime_type>text/x-styl</mime_type>
7 <case_insensitive>true</case_insensitive>
8 </config>
9 <rules>
10 <state name="values">
11 <rule pattern="\s+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="(\#[a-f0-9]{3,6})">
15 <token type="LiteralNumberHex"/>
16 </rule>
17 <rule pattern="\b(use-glyph-orientation|decimal-leading-zero|ruby-base-container|ruby-text-container|table-column-group|table-header-group|geometricPrecision|table-footer-group|optimizeLegibility|alternate-reverse|repeat no-repeat|table-row-group|all-petite-caps|ultra-condensed|extra-condensed|box-decoration|sideways-right|extra-expanded|no-close-quote|all-small-caps|semi-condensed|ultra-expanded|column-reverse|space-between|semi-expanded|table-caption|no-open-quote|sideways-left|double-circle|vertical-text|optimizeSpeed|weight style|currentColor|titling-caps|match-parent|table-column|line-through|inline-block|inline-table|wrap-reverse|avoid-column|manipulation|space-around|context-menu|lower-alpha|row-reverse|not-allowed|content-box|ease-in-out|close-quote|lower-latin|crisp-edges|lower-roman|lower-greek|upper-alpha|upper-latin|upper-roman|nwse-resize|nesw-resize|preserve-3d|inline-flex|petite-caps|color-dodge|descendants|padding-box|capitalize|small-caps|difference|inter-word|step-start|all-scroll|stroke-box|soft-light|margin-box|open-quote|table-cell|row-resize|border-box|hard-light|break-word|color-burn|luminosity|full-width|col-resize|from-image|avoid-page|scale-down|saturation|sans-serif|flex-start|distribute|horizontal|alternate|ruby-text|force-end|list-item|se-resize|mandatory|exclusion|ns-resize|underline|ruby-base|ew-resize|condensed|container|uppercase|no-repeat|nw-resize|table-row|backwards|crosshair|proximity|sw-resize|lowercase|allow-end|each-line|monospace|pixelated|ne-resize|luminance|pan-right|ellipsis|pan-down|pan-left|overline|multiply|progress|relative|infinite|repeat-x|repeat-y|georgian|forwards|flex-end|s-resize|fill-box|expanded|separate|ease-out|sideways|e-resize|step-end|n-resize|collapse|triangle|baseline|view-box|w-resize|armenian|absolute|xx-large|xx-small|vertical|zoom-out|contain|ease-in|running|no-drop|zoom-in|unicase|hanging|smaller|x-large|overlay|compact|lighter|lighten|objects|oblique|x-small|reverse|stretch|upright|cursive|inherit|initial|outside|pointer|decimal|default|justify|visible|balance|isolate|fantasy|paused|static|pan-up|invert|inside|italic|weight|inline|hidden|outset|larger|repeat|always|spaces|sticky|circle|digits|linear|column|smooth|nowrap|bolder|normal|sesame|dashed|groove|darken|bottom|run-in|manual|dotted|double|medium|filled|screen|scroll|center|strict|square|edges|serif|start|thick|first|clone|fixed|slice|small|under|unset|block|color|round|solid|space|right|ridge|blink|below|pan-y|avoid|large|cover|inset|alpha|local|alias|style|loose|table|mixed|pan-x|page|ruby|disc|none|snap|ease|text|show|thin|clip|left|open|wrap|fill|cell|flat|flex|flip|last|both|help|bold|over|hide|wait|icon|move|auto|copy|wavy|top|ltr|row|rtl|end|hue|dot|off|all|ink|to|on)\b">
18 <token type="KeywordConstant"/>
19 </rule>
20 <rule pattern="\;?">
21 <token type="Punctuation"/>
22 <pop depth="1"/>
23 </rule>
24 </state>
25 <state name="root">
26 <rule pattern="([ \t]*\n|\s+)">
27 <token type="Text"/>
28 </rule>
29 <rule pattern="[!$][\w-]+">
30 <token type="NameVariable"/>
31 </rule>
32 <rule pattern="@[\w-]+">
33 <token type="KeywordPseudo"/>
34 <push state="atrule"/>
35 </rule>
36 <rule pattern="(\.)([\w-]+)">
37 <bygroups>
38 <token type="Punctuation"/>
39 <token type="NameClass"/>
40 </bygroups>
41 </rule>
42 <rule pattern="for|if|else if|else|unless|return|\&amp;">
43 <token type="Keyword"/>
44 </rule>
45 <rule pattern="([\w-]+)(\()">
46 <bygroups>
47 <token type="NameDecorator"/>
48 <token type="Punctuation"/>
49 </bygroups>
50 <push state="function-start"/>
51 </rule>
52 <rule pattern="(\+)([\w-]+)(\(\))">
53 <bygroups>
54 <token type="Keyword"/>
55 <token type="NameDecorator"/>
56 <token type="Punctuation"/>
57 </bygroups>
58 </rule>
59 <rule pattern="(-webkit-|-khtml-|prince-|-atsc-|-moz-|-rim-|-wap-|-ms-|-xv-|mso-|-ah-|-hp-|-ro-|-tc-|-o-)">
60 <token type="NameProperty"/>
61 </rule>
62 <rule pattern="\b(align-content|align-items|align-self|alignment-baseline|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|bookmark-label|bookmark-level|bookmark-state|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-boundary|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|box-snap|box-suppress|break-after|break-before|break-inside|caption-side|caret|caret-animation|caret-color|caret-shape|chains|clear|clip|clip-path|clip-rule|color|color-interpolation-filters|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|counter-set|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|elevation|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|float-defer|float-offset|float-reference|flood-color|flood-opacity|flow|flow-from|flow-into|font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight|footnote-display|footnote-policy|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphenate-character|hyphenate-limit-chars|hyphenate-limit-last|hyphenate-limit-lines|hyphenate-limit-zone|hyphens|image-orientation|image-resolution|initial-letter|initial-letter-align|initial-letter-wrap|isolation|justify-content|justify-items|justify-self|left|letter-spacing|lighting-color|line-break|line-grid|line-height|line-snap|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|marker-side|marquee-direction|marquee-loop|marquee-speed|marquee-style|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-height|max-lines|max-width|min-height|min-width|mix-blend-mode|motion|motion-offset|motion-path|motion-rotation|move-to|nav-down|nav-left|nav-right|nav-up|object-fit|object-position|offset-after|offset-before|offset-end|offset-start|opacity|order|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|pitch|pitch-range|play-during|polar-angle|polar-distance|position|presentation-level|quotes|region-fragment|resize|rest|rest-after|rest-before|richness|right|rotation|rotation-point|ruby-align|ruby-merge|ruby-position|running|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-points-x|scroll-snap-points-y|scroll-snap-type|shape-image-threshold|shape-inside|shape-margin|shape-outside|size|speak|speak-as|speak-header|speak-numeral|speak-punctuation|speech-rate|stress|string-set|tab-size|table-layout|text-align|text-align-last|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-shadow|text-space-collapse|text-space-trim|text-spacing|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|wrap-after|wrap-before|wrap-flow|wrap-inside|wrap-through|writing-mode|z-index)\b(\:)?">
63 <bygroups>
64 <token type="NameProperty"/>
65 <token type="Punctuation"/>
66 </bygroups>
67 <push state="values"/>
68 </rule>
69 <rule pattern="\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base(?:front)?|bd(?:i|o)|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|data|datalist|d(?:d|l|t)|del|details|dfn|dialog|dir|div|em(?:bed)?|fieldset|fig(?:caption|ure)|font|footer|form|frame(?:set)?|h[1-6]+|head(?:er)?|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|main|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|r(?:p|t|uby)|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)\b">
70 <token type="NameTag"/>
71 </rule>
72 <rule pattern="\b(cjk-ideographic|katakana-iroha|hiragana-iroha|small-caption|bidi-override|center-right|center-left|text-bottom|message-box|continuous|status-bar|right-side|rightwards|spell-out|left-side|landscape|far-right|leftwards|narrower|portrait|katakana|far-left|text-top|pre-wrap|hiragana|pre-line|silent|x-high|faster|higher|middle|x-soft|behind|x-fast|hebrew|slower|x-loud|super|above|lower|wider|level|aural|embed|x-low|cross|crop|fast|once|high|slow|soft|loud|yes|pre|low|mix)\b">
73 <token type="KeywordConstant"/>
74 </rule>
75 <rule pattern="\b(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
76 <token type="KeywordConstant"/>
77 </rule>
78 <rule pattern="(\{|\}|\(|\)|\[|\]|,|:|;)">
79 <token type="Punctuation"/>
80 </rule>
81 <rule pattern="(\.|\!|\-|\+|\~|\*\*|\*|\/|\%|\.\.\.|\.\.|\&lt;\=|\&gt;\=|\&lt;|\&gt;|\=\=|\!\=|\&amp;\&amp;|\|\||\=|\:\=|\?\=|\+\=|\-\=|\*\=|\/\=|\%\=|\?|\:)">
82 <token type="Operator"/>
83 </rule>
84 <rule pattern="\b(and|if unless|in|is|is a|is defined|is not|isnt|or|not)\b">
85 <token type="OperatorWord"/>
86 </rule>
87 <rule pattern="(\#[a-f0-9]{3,6})">
88 <token type="LiteralNumberHex"/>
89 </rule>
90 <rule pattern="\n">
91 <token type="Text"/>
92 </rule>
93 </state>
94 <state name="inline-comment">
95 <rule pattern="\*/">
96 <token type="Comment"/>
97 <pop depth="1"/>
98 </rule>
99 </state>
100 <state name="atrule">
101 <rule pattern="\{">
102 <token type="Punctuation"/>
103 <push state="atcontent"/>
104 </rule>
105 <rule pattern="$">
106 <token type="Punctuation"/>
107 <pop depth="1"/>
108 </rule>
109 <rule>
110 <include state="root"/>
111 </rule>
112 </state>
113 <state name="atcontent">
114 <rule>
115 <include state="root"/>
116 </rule>
117 <rule pattern="\}">
118 <token type="Punctuation"/>
119 <pop depth="2"/>
120 </rule>
121 </state>
122 <state name="function-start">
123 <rule pattern="\)">
124 <token type="Punctuation"/>
125 <pop depth="1"/>
126 </rule>
127 <rule>
128 <include state="root"/>
129 </rule>
130 </state>
131 </rules>
132</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml
new file mode 100644
index 0000000..416bf90
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/swift.xml
@@ -0,0 +1,207 @@
1<lexer>
2 <config>
3 <name>Swift</name>
4 <alias>swift</alias>
5 <filename>*.swift</filename>
6 <mime_type>text/x-swift</mime_type>
7 </config>
8 <rules>
9 <state name="comment">
10 <rule pattern=":param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):">
11 <token type="CommentSpecial"/>
12 </rule>
13 </state>
14 <state name="preproc">
15 <rule pattern="\n">
16 <token type="Text"/>
17 <pop depth="1"/>
18 </rule>
19 <rule>
20 <include state="keywords"/>
21 </rule>
22 <rule pattern="[A-Za-z]\w*">
23 <token type="CommentPreproc"/>
24 </rule>
25 <rule>
26 <include state="root"/>
27 </rule>
28 </state>
29 <state name="comment-single">
30 <rule pattern="\n">
31 <token type="Text"/>
32 <pop depth="1"/>
33 </rule>
34 <rule>
35 <include state="comment"/>
36 </rule>
37 <rule pattern="[^\n]">
38 <token type="CommentSingle"/>
39 </rule>
40 </state>
41 <state name="module">
42 <rule pattern="\n">
43 <token type="Text"/>
44 <pop depth="1"/>
45 </rule>
46 <rule pattern="[a-zA-Z_]\w*">
47 <token type="NameClass"/>
48 </rule>
49 <rule>
50 <include state="root"/>
51 </rule>
52 </state>
53 <state name="string">
54 <rule pattern="\\\(">
55 <token type="LiteralStringInterpol"/>
56 <push state="string-intp"/>
57 </rule>
58 <rule pattern="&#34;">
59 <token type="LiteralString"/>
60 <pop depth="1"/>
61 </rule>
62 <rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}">
63 <token type="LiteralStringEscape"/>
64 </rule>
65 <rule pattern="[^\\&#34;]+">
66 <token type="LiteralString"/>
67 </rule>
68 <rule pattern="\\">
69 <token type="LiteralString"/>
70 </rule>
71 </state>
72 <state name="string-intp">
73 <rule pattern="\(">
74 <token type="LiteralStringInterpol"/>
75 <push/>
76 </rule>
77 <rule pattern="\)">
78 <token type="LiteralStringInterpol"/>
79 <pop depth="1"/>
80 </rule>
81 <rule>
82 <include state="root"/>
83 </rule>
84 </state>
85 <state name="root">
86 <rule pattern="\n">
87 <token type="Text"/>
88 </rule>
89 <rule pattern="\s+">
90 <token type="Text"/>
91 </rule>
92 <rule pattern="//">
93 <token type="CommentSingle"/>
94 <push state="comment-single"/>
95 </rule>
96 <rule pattern="/\*">
97 <token type="CommentMultiline"/>
98 <push state="comment-multi"/>
99 </rule>
100 <rule pattern="#(if|elseif|else|endif|available)\b">
101 <token type="CommentPreproc"/>
102 <push state="preproc"/>
103 </rule>
104 <rule>
105 <include state="keywords"/>
106 </rule>
107 <rule pattern="(ExtendedGraphemeClusterLiteralConvertible|_SwiftNSDictionaryRequiredOverridesType|_SwiftNSStringRequiredOverridesType|_SwiftNSArrayRequiredOverridesType|AutoreleasingUnsafeMutablePointer|UnicodeScalarLiteralConvertible|RangeReplaceableCollectionType|StringInterpolationConvertible|DictionaryLiteralConvertible|UnsafeBufferPointerGenerator|_SwiftNSFastEnumerationType|LazyBidirectionalCollection|ExtendedGraphemeClusterType|FloatingPointClassification|ImplicitlyUnwrappedOptional|UnsafeMutableBufferPointer|LazyRandomAccessCollection|FilterCollectionViewIndex|_ExtensibleCollectionType|IntegerLiteralConvertible|ReverseBidirectionalIndex|BooleanLiteralConvertible|StringLiteralConvertible|BidirectionalReverseView|ReverseRandomAccessIndex|ExtensibleCollectionType|FloatLiteralConvertible|RandomAccessReverseView|_BidirectionalIndexType|ArrayLiteralConvertible|_RandomAccessIndexType|_IntegerArithmeticType|BidirectionalIndexType|StrideThroughGenerator|_SwiftNSDictionaryType|_SwiftNSEnumeratorType|BitwiseOperationsType|RandomAccessIndexType|NilLiteralConvertible|_ObjectiveCBridgeable|UnicodeDecodingResult|LazyForwardCollection|IntegerArithmeticType|MutableCollectionType|PermutationGenerator|MapSequenceGenerator|_UnsignedIntegerType|FilterCollectionView|UnsafeMutablePointer|UnsafeBufferPointer|UnsignedIntegerType|_SwiftNSCopyingType|DictionaryGenerator|_SignedIntegerType|_SwiftNSStringType|IntegerLiteralType|FilterSequenceView|EnumerateGenerator|BooleanLiteralType|HeapBufferStorage|EnumerateSequence|MirrorDisposition|_SignedNumberType|UnicodeScalarType|StringLiteralType|GeneratorSequence|_ForwardIndexType|StrideToGenerator|_SwiftNSArrayType|IndexingGenerator|_RawOptionSetType|FloatingPointType|MapCollectionView|SignedIntegerType|OutputStreamType|UnicodeCodecType|HalfOpenInterval|NSObjectProtocol|SignedNumberType|ObjectIdentifier|RawOptionSetType|_CocoaStringType|ForwardIndexType|RawRepresentable|MutableSliceable|FloatLiteralType|_ArrayBufferType|AbsoluteValuable|CFunctionPointer|QuickLookObject|MapSequenceView|EmptyCollection|FilterGenerator|_CollectionType|CollectionOfOne|ContiguousArray|DictionaryIndex|GeneratorOfOne|DebugPrintable|CVaListPointer|CUnsignedShort|COpaquePointer|EmptyGenerator|_Incrementable|RangeGenerator|NSErrorPointer|_Sequence_Type|ClosedInterval|CollectionType|ZipGenerator2|UnsafePointer|GeneratorType|StrideThrough|CUnsignedLong|UnicodeScalar|_SequenceType|LazySequence|IntervalType|SequenceType|StaticString|CUnsignedInt|_IntegerType|BooleanType|CVarArgType|_Strideable|_Comparable|GeneratorOf|IntegerType|Reflectable|CSignedChar|Streamable|SequenceOf|Dictionary|Comparable|HeapBuffer|_Sliceable|MirrorType|Strideable|CLongLong|CWideChar|Printable|Equatable|Unmanaged|Sliceable|Character|AnyObject|Optional|StrideTo|SinkType|AnyClass|Hashable|Selector|Float32|CChar16|UIntMax|Float80|Float64|RawByte|Process|CDouble|CChar32|UInt16|UInt32|C_ARGC|C_ARGV|UInt64|CFloat|String|SinkOf|Repeat|OnHeap|Double|CShort|IntMax|UTF16|Slice|CLong|UTF32|UInt8|Range|UWord|Array|Float|Int64|Int32|Int16|CBool|CChar|UInt|Int8|Word|UTF8|Zip2|Void|Bool|CInt|Any|Int|Bit)\b">
108 <token type="NameBuiltin"/>
109 </rule>
110 <rule pattern="(withUnsafeMutablePointers|withUnsafeMutablePointer|lexicographicalCompare|withExtendedLifetime|preconditionFailure|withUnsafePointers|underestimateCount|withUnsafePointer|assertionFailure|unsafeAddressOf|unsafeDowncast|countElements|unsafeBitCast|toDebugString|strideofValue|removeAtIndex|alignofValue|debugPrintln|precondition|sizeofValue|removeRange|numericCast|removeLast|debugPrint|fatalError|minElement|maxElement|startsWith|withVaList|partition|removeAll|transcode|dropFirst|enumerate|getVaList|strideof|contains|overlaps|dropLast|distance|toString|advance|println|alignof|reflect|indices|reverse|isEmpty|prefix|stride|sizeof|insert|assert|sorted|splice|filter|extend|reduce|suffix|equal|print|count|split|first|swap|dump|sort|lazy|last|join|find|abs|min|max|map)\b">
111 <token type="NameBuiltinPseudo"/>
112 </rule>
113 <rule pattern="\$\d+">
114 <token type="NameVariable"/>
115 </rule>
116 <rule pattern="0b[01_]+">
117 <token type="LiteralNumberBin"/>
118 </rule>
119 <rule pattern="0o[0-7_]+">
120 <token type="LiteralNumberOct"/>
121 </rule>
122 <rule pattern="0x[0-9a-fA-F_]+">
123 <token type="LiteralNumberHex"/>
124 </rule>
125 <rule pattern="[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)">
126 <token type="LiteralNumberFloat"/>
127 </rule>
128 <rule pattern="[0-9][0-9_]*">
129 <token type="LiteralNumberInteger"/>
130 </rule>
131 <rule pattern="&#34;">
132 <token type="LiteralString"/>
133 <push state="string"/>
134 </rule>
135 <rule pattern="[(){}\[\].,:;=@#`?]|-&gt;|[&lt;&amp;?](?=\w)|(?&lt;=\w)[&gt;!?]">
136 <token type="Punctuation"/>
137 </rule>
138 <rule pattern="[/=\-+!*%&lt;&gt;&amp;|^?~]+">
139 <token type="Operator"/>
140 </rule>
141 <rule pattern="[a-zA-Z_]\w*">
142 <token type="Name"/>
143 </rule>
144 </state>
145 <state name="comment-multi">
146 <rule>
147 <include state="comment"/>
148 </rule>
149 <rule pattern="[^*/]">
150 <token type="CommentMultiline"/>
151 </rule>
152 <rule pattern="/\*">
153 <token type="CommentMultiline"/>
154 <push/>
155 </rule>
156 <rule pattern="\*/">
157 <token type="CommentMultiline"/>
158 <pop depth="1"/>
159 </rule>
160 <rule pattern="[*/]">
161 <token type="CommentMultiline"/>
162 </rule>
163 </state>
164 <state name="keywords">
165 <rule pattern="(fallthrough|#selector|continue|default|repeat|switch|return|throw|catch|where|break|guard|defer|while|case|else|try|for|if|do|is|in|as)\b">
166 <token type="Keyword"/>
167 </rule>
168 <rule pattern="@availability\([^)]+\)">
169 <token type="KeywordReserved"/>
170 </rule>
171 <rule pattern="(@UIApplicationMain|@NSApplicationMain|@IBInspectable|@availability|@IBDesignable|associativity|@autoclosure|convenience|nonmutating|@NSManaged|@NSCopying|precedence|@IBAction|@noreturn|@IBOutlet|override|optional|mutating|indirect|Protocol|rethrows|required|willSet|dynamic|postfix|unowned|throws|prefix|didSet|final|inout|@objc|infix|right|lazy|none|weak|Type|left|get|set)\b">
172 <token type="KeywordReserved"/>
173 </rule>
174 <rule pattern="(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__|__FILE__|__FUNCTION__|__LINE__|_|#(?:file|line|column|function))\b">
175 <token type="KeywordConstant"/>
176 </rule>
177 <rule pattern="import\b">
178 <token type="KeywordDeclaration"/>
179 <push state="module"/>
180 </rule>
181 <rule pattern="(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)">
182 <bygroups>
183 <token type="KeywordDeclaration"/>
184 <token type="Text"/>
185 <token type="NameClass"/>
186 </bygroups>
187 </rule>
188 <rule pattern="(func)(\s+)([a-zA-Z_]\w*)">
189 <bygroups>
190 <token type="KeywordDeclaration"/>
191 <token type="Text"/>
192 <token type="NameFunction"/>
193 </bygroups>
194 </rule>
195 <rule pattern="(var|let)(\s+)([a-zA-Z_]\w*)">
196 <bygroups>
197 <token type="KeywordDeclaration"/>
198 <token type="Text"/>
199 <token type="NameVariable"/>
200 </bygroups>
201 </rule>
202 <rule pattern="(typealias|extension|subscript|internal|protocol|operator|private|public|struct|deinit|static|import|class|init|func|enum|let|var)\b">
203 <token type="KeywordDeclaration"/>
204 </rule>
205 </state>
206 </rules>
207</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml
new file mode 100644
index 0000000..e31bfc2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemd.xml
@@ -0,0 +1,63 @@
1<lexer>
2 <config>
3 <name>SYSTEMD</name>
4 <alias>systemd</alias>
5 <filename>*.automount</filename>
6 <filename>*.device</filename>
7 <filename>*.dnssd</filename>
8 <filename>*.link</filename>
9 <filename>*.mount</filename>
10 <filename>*.netdev</filename>
11 <filename>*.network</filename>
12 <filename>*.path</filename>
13 <filename>*.scope</filename>
14 <filename>*.service</filename>
15 <filename>*.slice</filename>
16 <filename>*.socket</filename>
17 <filename>*.swap</filename>
18 <filename>*.target</filename>
19 <filename>*.timer</filename>
20 <mime_type>text/plain</mime_type>
21 </config>
22 <rules>
23 <state name="root">
24 <rule pattern="\s+">
25 <token type="Text"/>
26 </rule>
27 <rule pattern="[;#].*">
28 <token type="Comment"/>
29 </rule>
30 <rule pattern="\[.*?\]$">
31 <token type="Keyword"/>
32 </rule>
33 <rule pattern="(.*?)(=)(.*)(\\\n)">
34 <bygroups>
35 <token type="NameAttribute"/>
36 <token type="Operator"/>
37 <token type="LiteralString"/>
38 <token type="Text"/>
39 </bygroups>
40 <push state="continuation"/>
41 </rule>
42 <rule pattern="(.*?)(=)(.*)">
43 <bygroups>
44 <token type="NameAttribute"/>
45 <token type="Operator"/>
46 <token type="LiteralString"/>
47 </bygroups>
48 </rule>
49 </state>
50 <state name="continuation">
51 <rule pattern="(.*?)(\\\n)">
52 <bygroups>
53 <token type="LiteralString"/>
54 <token type="Text"/>
55 </bygroups>
56 </rule>
57 <rule pattern="(.*)">
58 <token type="LiteralString"/>
59 <pop depth="1"/>
60 </rule>
61 </state>
62 </rules>
63</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml
new file mode 100644
index 0000000..fac3da2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/systemverilog.xml
@@ -0,0 +1,181 @@
1<lexer>
2 <config>
3 <name>systemverilog</name>
4 <alias>systemverilog</alias>
5 <alias>sv</alias>
6 <filename>*.sv</filename>
7 <filename>*.svh</filename>
8 <mime_type>text/x-systemverilog</mime_type>
9 <ensure_nl>true</ensure_nl>
10 </config>
11 <rules>
12 <state name="macro">
13 <rule pattern="[^/\n]+">
14 <token type="CommentPreproc"/>
15 </rule>
16 <rule pattern="/[*](.|\n)*?[*]/">
17 <token type="CommentMultiline"/>
18 </rule>
19 <rule pattern="//.*?\n">
20 <token type="CommentSingle"/>
21 <pop depth="1"/>
22 </rule>
23 <rule pattern="/">
24 <token type="CommentPreproc"/>
25 </rule>
26 <rule pattern="(?&lt;=\\)\n">
27 <token type="CommentPreproc"/>
28 </rule>
29 <rule pattern="\n">
30 <token type="CommentPreproc"/>
31 <pop depth="1"/>
32 </rule>
33 </state>
34 <state name="import">
35 <rule pattern="[\w:]+\*?">
36 <token type="NameNamespace"/>
37 <pop depth="1"/>
38 </rule>
39 </state>
40 <state name="root">
41 <rule pattern="^\s*`define">
42 <token type="CommentPreproc"/>
43 <push state="macro"/>
44 </rule>
45 <rule pattern="^(\s*)(package)(\s+)">
46 <bygroups>
47 <token type="Text"/>
48 <token type="KeywordNamespace"/>
49 <token type="Text"/>
50 </bygroups>
51 </rule>
52 <rule pattern="^(\s*)(import)(\s+)(&#34;DPI(?:-C)?&#34;)(\s+)">
53 <bygroups>
54 <token type="Text"/>
55 <token type="KeywordNamespace"/>
56 <token type="Text"/>
57 <token type="LiteralString"/>
58 <token type="Text"/>
59 </bygroups>
60 </rule>
61 <rule pattern="^(\s*)(import)(\s+)">
62 <bygroups>
63 <token type="Text"/>
64 <token type="KeywordNamespace"/>
65 <token type="Text"/>
66 </bygroups>
67 <push state="import"/>
68 </rule>
69 <rule pattern="\n">
70 <token type="Text"/>
71 </rule>
72 <rule pattern="\s+">
73 <token type="Text"/>
74 </rule>
75 <rule pattern="\\\n">
76 <token type="Text"/>
77 </rule>
78 <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
79 <token type="CommentSingle"/>
80 </rule>
81 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
82 <token type="CommentMultiline"/>
83 </rule>
84 <rule pattern="[{}#@]">
85 <token type="Punctuation"/>
86 </rule>
87 <rule pattern="L?&#34;">
88 <token type="LiteralString"/>
89 <push state="string"/>
90 </rule>
91 <rule pattern="L?&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
92 <token type="LiteralStringChar"/>
93 </rule>
94 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
95 <token type="LiteralNumberFloat"/>
96 </rule>
97 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
98 <token type="LiteralNumberFloat"/>
99 </rule>
100 <rule pattern="([0-9]+)|(\&#39;h)[0-9a-fA-F]+">
101 <token type="LiteralNumberHex"/>
102 </rule>
103 <rule pattern="([0-9]+)|(\&#39;b)[01]+">
104 <token type="LiteralNumberBin"/>
105 </rule>
106 <rule pattern="([0-9]+)|(\&#39;d)[0-9]+">
107 <token type="LiteralNumberInteger"/>
108 </rule>
109 <rule pattern="([0-9]+)|(\&#39;o)[0-7]+">
110 <token type="LiteralNumberOct"/>
111 </rule>
112 <rule pattern="\&#39;[01xz]">
113 <token type="LiteralNumber"/>
114 </rule>
115 <rule pattern="\d+[Ll]?">
116 <token type="LiteralNumberInteger"/>
117 </rule>
118 <rule pattern="\*/">
119 <token type="Error"/>
120 </rule>
121 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
122 <token type="Operator"/>
123 </rule>
124 <rule pattern="[()\[\],.;\&#39;]">
125 <token type="Punctuation"/>
126 </rule>
127 <rule pattern="`[a-zA-Z_]\w*">
128 <token type="NameConstant"/>
129 </rule>
130 <rule pattern="(pulsestyle_ondetect|pulsestyle_onevent|noshowcancelled|sync_accept_on|sync_reject_on|showcancelled|timeprecision|endprimitive|randsequence|s_until_with|s_eventually|always_latch|endinterface|illegal_bins|macromodule|always_comb|endfunction|endproperty|first_match|endsequence|endgenerate|ignore_bins|endclocking|until_with|localparam|coverpoint|eventually|throughout|s_nexttime|endprogram|endspecify|endchecker|wait_order|constraint|covergroup|endpackage|endconfig|interface|accept_on|shortreal|parameter|primitive|intersect|protected|join_none|automatic|reject_on|always_ff|specparam|endmodule|shortint|join_any|endclass|sequence|defparam|scalared|deassign|endgroup|timeunit|instance|continue|restrict|clocking|nexttime|s_always|rtranif1|endtable|rtranif0|unsigned|priority|vectored|property|pulldown|wildcard|generate|function|realtime|forkjoin|randcase|context|forever|release|virtual|strong0|program|untyped|posedge|package|foreach|extends|specify|unique0|typedef|chandle|implies|checker|negedge|tranif1|initial|modport|strong1|matches|tranif0|endtask|integer|supply0|endcase|supply1|longint|disable|s_until|default|liblist|library|include|bufif0|design|tagged|struct|inside|medium|signed|config|highz1|incdir|import|expect|triand|trireg|export|unique|notif0|notif1|return|ifnone|output|highz0|packed|bufif1|repeat|global|genvar|binsof|extern|string|before|static|assume|assign|pullup|assert|always|within|strong|module|final|union|rcmos|casex|casez|trior|alias|pull1|pull0|break|uwire|randc|rnmos|rpmos|rtran|class|const|cover|weak1|until|logic|local|weak0|large|table|force|input|inout|small|solve|begin|super|event|while|cross|void|fork|enum|wait|cmos|bind|else|edge|join|nand|task|this|dist|time|cell|nmos|tran|wand|wire|bins|with|tri1|pmos|xnor|pure|type|real|rand|case|byte|weak|tri0|null|int|use|ref|var|tri|end|for|wor|iff|xor|bit|let|new|nor|and|not|reg|buf|or|if|do)\b">
131 <token type="Keyword"/>
132 </rule>
133 <rule pattern="(`nounconnected_drive|`unconnected_drive|`default_nettype|`begin_keywords|`endcelldefine|`end_keywords|`undefineall|`celldefine|`timescale|`__LINE__|`resetall|`__FILE__|`include|`ifndef|`pragma|`define|`undef|`endif|`elsif|`ifdef|`else|`line)\b">
134 <token type="CommentPreproc"/>
135 </rule>
136 <rule pattern="(\$dumpportsflush|\$dumpportslimit|\$value\$plusargs|\$dumpportsoff|\$dumpportsall|\$dumpportson|\$monitoroff|\$writememb|\$fdisplayo|\$fdisplayh|\$dumpports|\$dumplimit|\$dumpflush|\$fmonitorb|\$fmonitoro|\$monitoron|\$fdisplayb|\$writememh|\$fmonitorh|\$readmemb|\$fdisplay|\$monitorh|\$dumpfile|\$sformatf|\$monitorb|\$monitoro|\$displayb|\$plusargs|\$fmonitor|\$displayo|\$fstrobeo|\$displayh|\$fstrobeh|\$fstrobeb|\$readmemh|\$dumpvars|\$fstrobe|\$sformat|\$strobeb|\$swriteh|\$strobeh|\$strobeo|\$swriteb|\$fwriteh|\$fwriteo|\$monitor|\$dumpall|\$dumpoff|\$fwriteb|\$display|\$swriteo|\$fflush|\$random|\$dumpon|\$fscanf|\$rewind|\$writeh|\$writeo|\$sscanf|\$strobe|\$writeb|\$finish|\$ungetc|\$fclose|\$ferror|\$swrite|\$fwrite|\$fgetc|\$fseek|\$fgets|\$write|\$fopen|\$fread|\$ftell|\$test|\$feof)\b">
137 <token type="NameBuiltin"/>
138 </rule>
139 <rule pattern="(class)(\s+)">
140 <bygroups>
141 <token type="Keyword"/>
142 <token type="Text"/>
143 </bygroups>
144 <push state="classname"/>
145 </rule>
146 <rule pattern="(woshortreal|shortint|realtime|longint|integer|supply0|supply1|triand|trireg|uwire|logic|trior|byte|wand|tri0|tri1|time|real|wire|reg|bit|int|tri)\b">
147 <token type="KeywordType"/>
148 </rule>
149 <rule pattern="[a-zA-Z_]\w*:(?!:)">
150 <token type="NameLabel"/>
151 </rule>
152 <rule pattern="\$?[a-zA-Z_]\w*">
153 <token type="Name"/>
154 </rule>
155 </state>
156 <state name="classname">
157 <rule pattern="[a-zA-Z_]\w*">
158 <token type="NameClass"/>
159 <pop depth="1"/>
160 </rule>
161 </state>
162 <state name="string">
163 <rule pattern="&#34;">
164 <token type="LiteralString"/>
165 <pop depth="1"/>
166 </rule>
167 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
168 <token type="LiteralStringEscape"/>
169 </rule>
170 <rule pattern="[^\\&#34;\n]+">
171 <token type="LiteralString"/>
172 </rule>
173 <rule pattern="\\\n">
174 <token type="LiteralString"/>
175 </rule>
176 <rule pattern="\\">
177 <token type="LiteralString"/>
178 </rule>
179 </state>
180 </rules>
181</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml
new file mode 100644
index 0000000..a020ce8
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tablegen.xml
@@ -0,0 +1,69 @@
1<lexer>
2 <config>
3 <name>TableGen</name>
4 <alias>tablegen</alias>
5 <filename>*.td</filename>
6 <mime_type>text/x-tablegen</mime_type>
7 </config>
8 <rules>
9 <state name="whitespace">
10 <rule pattern="(\n|\s)+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="//.*?\n">
14 <token type="Comment"/>
15 </rule>
16 </state>
17 <state name="keyword">
18 <rule pattern="(multiclass|foreach|string|class|field|defm|bits|code|list|def|int|let|dag|bit|in)\b">
19 <token type="Keyword"/>
20 </rule>
21 </state>
22 <state name="root">
23 <rule>
24 <include state="macro"/>
25 </rule>
26 <rule>
27 <include state="whitespace"/>
28 </rule>
29 <rule pattern="c?&#34;[^&#34;]*?&#34;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule>
33 <include state="keyword"/>
34 </rule>
35 <rule pattern="\$[_a-zA-Z][_\w]*">
36 <token type="NameVariable"/>
37 </rule>
38 <rule pattern="\d*[_a-zA-Z][_\w]*">
39 <token type="NameVariable"/>
40 </rule>
41 <rule pattern="\[\{[\w\W]*?\}\]">
42 <token type="LiteralString"/>
43 </rule>
44 <rule pattern="[+-]?\d+|0x[\da-fA-F]+|0b[01]+">
45 <token type="LiteralNumber"/>
46 </rule>
47 <rule pattern="[=&lt;&gt;{}\[\]()*.,!:;]">
48 <token type="Punctuation"/>
49 </rule>
50 </state>
51 <state name="macro">
52 <rule pattern="(#include\s+)(&#34;[^&#34;]*&#34;)">
53 <bygroups>
54 <token type="CommentPreproc"/>
55 <token type="LiteralString"/>
56 </bygroups>
57 </rule>
58 <rule pattern="^\s*#(ifdef|ifndef)\s+[_\w][_\w\d]*">
59 <token type="CommentPreproc"/>
60 </rule>
61 <rule pattern="^\s*#define\s+[_\w][_\w\d]*">
62 <token type="CommentPreproc"/>
63 </rule>
64 <rule pattern="^\s*#endif">
65 <token type="CommentPreproc"/>
66 </rule>
67 </state>
68 </rules>
69</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml
new file mode 100644
index 0000000..1347f53
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tasm.xml
@@ -0,0 +1,135 @@
1<lexer>
2 <config>
3 <name>TASM</name>
4 <alias>tasm</alias>
5 <filename>*.asm</filename>
6 <filename>*.ASM</filename>
7 <filename>*.tasm</filename>
8 <mime_type>text/x-tasm</mime_type>
9 <case_insensitive>true</case_insensitive>
10 </config>
11 <rules>
12 <state name="preproc">
13 <rule pattern="[^;\n]+">
14 <token type="CommentPreproc"/>
15 </rule>
16 <rule pattern=";.*?\n">
17 <token type="CommentSingle"/>
18 <pop depth="1"/>
19 </rule>
20 <rule pattern="\n">
21 <token type="CommentPreproc"/>
22 <pop depth="1"/>
23 </rule>
24 </state>
25 <state name="whitespace">
26 <rule pattern="[\n\r]">
27 <token type="Text"/>
28 </rule>
29 <rule pattern="\\[\n\r]">
30 <token type="Text"/>
31 </rule>
32 <rule pattern="[ \t]+">
33 <token type="Text"/>
34 </rule>
35 <rule pattern=";.*">
36 <token type="CommentSingle"/>
37 </rule>
38 </state>
39 <state name="punctuation">
40 <rule pattern="[,():\[\]]+">
41 <token type="Punctuation"/>
42 </rule>
43 <rule pattern="[&amp;|^&lt;&gt;+*=/%~-]+">
44 <token type="Operator"/>
45 </rule>
46 <rule pattern="[$]+">
47 <token type="KeywordConstant"/>
48 </rule>
49 <rule pattern="seg|wrt|strict">
50 <token type="OperatorWord"/>
51 </rule>
52 <rule pattern="byte|[dq]?word">
53 <token type="KeywordType"/>
54 </rule>
55 </state>
56 <state name="root">
57 <rule pattern="^\s*%">
58 <token type="CommentPreproc"/>
59 <push state="preproc"/>
60 </rule>
61 <rule>
62 <include state="whitespace"/>
63 </rule>
64 <rule pattern="[@a-z$._?][\w$.?#@~]*:">
65 <token type="NameLabel"/>
66 </rule>
67 <rule pattern="BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|ENDS|COMMON|CPU|GROUP|UPPERCASE|INCLUDE|EXPORT|LIBRARY|MODULE|PROC|ENDP|USES|ARG|DATASEG|UDATASEG|END|IDEAL|P386|MODEL|ASSUME|CODESEG|SIZE">
68 <token type="Keyword"/>
69 <push state="instruction-args"/>
70 </rule>
71 <rule pattern="([@a-z$._?][\w$.?#@~]*)(\s+)(db|dd|dw|T[A-Z][a-z]+)">
72 <bygroups>
73 <token type="NameConstant"/>
74 <token type="KeywordDeclaration"/>
75 <token type="KeywordDeclaration"/>
76 </bygroups>
77 <push state="instruction-args"/>
78 </rule>
79 <rule pattern="(?:res|d)[bwdqt]|times">
80 <token type="KeywordDeclaration"/>
81 <push state="instruction-args"/>
82 </rule>
83 <rule pattern="[@a-z$._?][\w$.?#@~]*">
84 <token type="NameFunction"/>
85 <push state="instruction-args"/>
86 </rule>
87 <rule pattern="[\r\n]+">
88 <token type="Text"/>
89 </rule>
90 </state>
91 <state name="instruction-args">
92 <rule pattern="&#34;(\\&#34;|[^&#34;\n])*&#34;|&#39;(\\&#39;|[^&#39;\n])*&#39;|`(\\`|[^`\n])*`">
93 <token type="LiteralString"/>
94 </rule>
95 <rule pattern="(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)">
96 <token type="LiteralNumberHex"/>
97 </rule>
98 <rule pattern="[0-7]+q">
99 <token type="LiteralNumberOct"/>
100 </rule>
101 <rule pattern="[01]+b">
102 <token type="LiteralNumberBin"/>
103 </rule>
104 <rule pattern="[0-9]+\.e?[0-9]+">
105 <token type="LiteralNumberFloat"/>
106 </rule>
107 <rule pattern="[0-9]+">
108 <token type="LiteralNumberInteger"/>
109 </rule>
110 <rule>
111 <include state="punctuation"/>
112 </rule>
113 <rule pattern="r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]">
114 <token type="NameBuiltin"/>
115 </rule>
116 <rule pattern="[@a-z$._?][\w$.?#@~]*">
117 <token type="NameVariable"/>
118 </rule>
119 <rule pattern="(\\\s*)(;.*)([\r\n])">
120 <bygroups>
121 <token type="Text"/>
122 <token type="CommentSingle"/>
123 <token type="Text"/>
124 </bygroups>
125 </rule>
126 <rule pattern="[\r\n]+">
127 <token type="Text"/>
128 <pop depth="1"/>
129 </rule>
130 <rule>
131 <include state="whitespace"/>
132 </rule>
133 </state>
134 </rules>
135</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml
new file mode 100644
index 0000000..7ed69bc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcl.xml
@@ -0,0 +1,272 @@
1<lexer>
2 <config>
3 <name>Tcl</name>
4 <alias>tcl</alias>
5 <filename>*.tcl</filename>
6 <filename>*.rvt</filename>
7 <mime_type>text/x-tcl</mime_type>
8 <mime_type>text/x-script.tcl</mime_type>
9 <mime_type>application/x-tcl</mime_type>
10 </config>
11 <rules>
12 <state name="command-in-bracket">
13 <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
14 <token type="Keyword"/>
15 <push state="params-in-bracket"/>
16 </rule>
17 <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
18 <token type="NameBuiltin"/>
19 <push state="params-in-bracket"/>
20 </rule>
21 <rule pattern="([\w.-]+)">
22 <token type="NameVariable"/>
23 <push state="params-in-bracket"/>
24 </rule>
25 <rule pattern="#">
26 <token type="Comment"/>
27 <push state="comment"/>
28 </rule>
29 </state>
30 <state name="command-in-paren">
31 <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
32 <token type="Keyword"/>
33 <push state="params-in-paren"/>
34 </rule>
35 <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
36 <token type="NameBuiltin"/>
37 <push state="params-in-paren"/>
38 </rule>
39 <rule pattern="([\w.-]+)">
40 <token type="NameVariable"/>
41 <push state="params-in-paren"/>
42 </rule>
43 <rule pattern="#">
44 <token type="Comment"/>
45 <push state="comment"/>
46 </rule>
47 </state>
48 <state name="command-in-brace">
49 <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
50 <token type="Keyword"/>
51 <push state="params-in-brace"/>
52 </rule>
53 <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
54 <token type="NameBuiltin"/>
55 <push state="params-in-brace"/>
56 </rule>
57 <rule pattern="([\w.-]+)">
58 <token type="NameVariable"/>
59 <push state="params-in-brace"/>
60 </rule>
61 <rule pattern="#">
62 <token type="Comment"/>
63 <push state="comment"/>
64 </rule>
65 </state>
66 <state name="basic">
67 <rule pattern="\(">
68 <token type="Keyword"/>
69 <push state="paren"/>
70 </rule>
71 <rule pattern="\[">
72 <token type="Keyword"/>
73 <push state="bracket"/>
74 </rule>
75 <rule pattern="\{">
76 <token type="Keyword"/>
77 <push state="brace"/>
78 </rule>
79 <rule pattern="&#34;">
80 <token type="LiteralStringDouble"/>
81 <push state="string"/>
82 </rule>
83 <rule pattern="(eq|ne|in|ni)\b">
84 <token type="OperatorWord"/>
85 </rule>
86 <rule pattern="!=|==|&lt;&lt;|&gt;&gt;|&lt;=|&gt;=|&amp;&amp;|\|\||\*\*|[-+~!*/%&lt;&gt;&amp;^|?:]">
87 <token type="Operator"/>
88 </rule>
89 </state>
90 <state name="params-in-bracket">
91 <rule pattern="\]">
92 <token type="Keyword"/>
93 <push state="#pop" state="#pop"/>
94 </rule>
95 <rule>
96 <include state="params"/>
97 </rule>
98 </state>
99 <state name="data">
100 <rule pattern="\s+">
101 <token type="Text"/>
102 </rule>
103 <rule pattern="0x[a-fA-F0-9]+">
104 <token type="LiteralNumberHex"/>
105 </rule>
106 <rule pattern="0[0-7]+">
107 <token type="LiteralNumberOct"/>
108 </rule>
109 <rule pattern="\d+\.\d+">
110 <token type="LiteralNumberFloat"/>
111 </rule>
112 <rule pattern="\d+">
113 <token type="LiteralNumberInteger"/>
114 </rule>
115 <rule pattern="\$([\w.:-]+)">
116 <token type="NameVariable"/>
117 </rule>
118 <rule pattern="([\w.:-]+)">
119 <token type="Text"/>
120 </rule>
121 </state>
122 <state name="command">
123 <rule pattern="\b(namespace|continue|variable|uplevel|foreach|return|update|elseif|global|rename|switch|upvar|error|vwait|catch|break|unset|array|apply|trace|after|while|then|else|expr|eval|proc|for|set|if)\b">
124 <token type="Keyword"/>
125 <push state="params"/>
126 </rule>
127 <rule pattern="\b(platform::shell|pkg::create|pkg_mkIndex|fconfigure|re_syntax|fileevent|platform|fblocked|lreverse|mathfunc|encoding|registry|lreplace|history|bgerror|llength|lsearch|linsert|lassign|lappend|refchan|unknown|package|lrepeat|msgcat|mathop|format|interp|lrange|string|source|lindex|socket|concat|regsub|regexp|loadTk|memory|binary|append|unload|subst|split|lsort|clock|close|flush|fcopy|chan|glob|time|gets|http|dict|file|puts|tell|join|read|exit|exec|open|list|scan|seek|incr|info|lset|load|dde|pwd|pid|eof|tm|cd)\b">
128 <token type="NameBuiltin"/>
129 <push state="params"/>
130 </rule>
131 <rule pattern="([\w.-]+)">
132 <token type="NameVariable"/>
133 <push state="params"/>
134 </rule>
135 <rule pattern="#">
136 <token type="Comment"/>
137 <push state="comment"/>
138 </rule>
139 </state>
140 <state name="params-in-brace">
141 <rule pattern="\}">
142 <token type="Keyword"/>
143 <push state="#pop" state="#pop"/>
144 </rule>
145 <rule>
146 <include state="params"/>
147 </rule>
148 </state>
149 <state name="string-square">
150 <rule pattern="\[">
151 <token type="LiteralStringDouble"/>
152 <push state="string-square"/>
153 </rule>
154 <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])">
155 <token type="LiteralStringDouble"/>
156 </rule>
157 <rule pattern="\]">
158 <token type="LiteralStringDouble"/>
159 <pop depth="1"/>
160 </rule>
161 </state>
162 <state name="bracket">
163 <rule pattern="\]">
164 <token type="Keyword"/>
165 <pop depth="1"/>
166 </rule>
167 <rule>
168 <include state="command-in-bracket"/>
169 </rule>
170 <rule>
171 <include state="basic"/>
172 </rule>
173 <rule>
174 <include state="data"/>
175 </rule>
176 </state>
177 <state name="params-in-paren">
178 <rule pattern="\)">
179 <token type="Keyword"/>
180 <push state="#pop" state="#pop"/>
181 </rule>
182 <rule>
183 <include state="params"/>
184 </rule>
185 </state>
186 <state name="paren">
187 <rule pattern="\)">
188 <token type="Keyword"/>
189 <pop depth="1"/>
190 </rule>
191 <rule>
192 <include state="command-in-paren"/>
193 </rule>
194 <rule>
195 <include state="basic"/>
196 </rule>
197 <rule>
198 <include state="data"/>
199 </rule>
200 </state>
201 <state name="comment">
202 <rule pattern=".*[^\\]\n">
203 <token type="Comment"/>
204 <pop depth="1"/>
205 </rule>
206 <rule pattern=".*\\\n">
207 <token type="Comment"/>
208 </rule>
209 </state>
210 <state name="root">
211 <rule>
212 <include state="command"/>
213 </rule>
214 <rule>
215 <include state="basic"/>
216 </rule>
217 <rule>
218 <include state="data"/>
219 </rule>
220 <rule pattern="\}">
221 <token type="Keyword"/>
222 </rule>
223 </state>
224 <state name="brace">
225 <rule pattern="\}">
226 <token type="Keyword"/>
227 <pop depth="1"/>
228 </rule>
229 <rule>
230 <include state="command-in-brace"/>
231 </rule>
232 <rule>
233 <include state="basic"/>
234 </rule>
235 <rule>
236 <include state="data"/>
237 </rule>
238 </state>
239 <state name="params">
240 <rule pattern=";">
241 <token type="Keyword"/>
242 <pop depth="1"/>
243 </rule>
244 <rule pattern="\n">
245 <token type="Text"/>
246 <pop depth="1"/>
247 </rule>
248 <rule pattern="(else|elseif|then)\b">
249 <token type="Keyword"/>
250 </rule>
251 <rule>
252 <include state="basic"/>
253 </rule>
254 <rule>
255 <include state="data"/>
256 </rule>
257 </state>
258 <state name="string">
259 <rule pattern="\[">
260 <token type="LiteralStringDouble"/>
261 <push state="string-square"/>
262 </rule>
263 <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\])">
264 <token type="LiteralStringDouble"/>
265 </rule>
266 <rule pattern="&#34;">
267 <token type="LiteralStringDouble"/>
268 <pop depth="1"/>
269 </rule>
270 </state>
271 </rules>
272</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml
new file mode 100644
index 0000000..9895643
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tcsh.xml
@@ -0,0 +1,121 @@
1<lexer>
2 <config>
3 <name>Tcsh</name>
4 <alias>tcsh</alias>
5 <alias>csh</alias>
6 <filename>*.tcsh</filename>
7 <filename>*.csh</filename>
8 <mime_type>application/x-csh</mime_type>
9 </config>
10 <rules>
11 <state name="basic">
12 <rule pattern="\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\b">
13 <token type="Keyword"/>
14 </rule>
15 <rule pattern="\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">
16 <token type="NameBuiltin"/>
17 </rule>
18 <rule pattern="#.*">
19 <token type="Comment"/>
20 </rule>
21 <rule pattern="\\[\w\W]">
22 <token type="LiteralStringEscape"/>
23 </rule>
24 <rule pattern="(\b\w+)(\s*)(=)">
25 <bygroups>
26 <token type="NameVariable"/>
27 <token type="Text"/>
28 <token type="Operator"/>
29 </bygroups>
30 </rule>
31 <rule pattern="[\[\]{}()=]+">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="&lt;&lt;\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
35 <token type="LiteralString"/>
36 </rule>
37 <rule pattern=";">
38 <token type="Punctuation"/>
39 </rule>
40 </state>
41 <state name="data">
42 <rule pattern="(?s)&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\])*&#34;">
43 <token type="LiteralStringDouble"/>
44 </rule>
45 <rule pattern="(?s)&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
46 <token type="LiteralStringSingle"/>
47 </rule>
48 <rule pattern="\s+">
49 <token type="Text"/>
50 </rule>
51 <rule pattern="[^=\s\[\]{}()$&#34;\&#39;`\\;#]+">
52 <token type="Text"/>
53 </rule>
54 <rule pattern="\d+(?= |\Z)">
55 <token type="LiteralNumber"/>
56 </rule>
57 <rule pattern="\$#?(\w+|.)">
58 <token type="NameVariable"/>
59 </rule>
60 </state>
61 <state name="curly">
62 <rule pattern="\}">
63 <token type="Keyword"/>
64 <pop depth="1"/>
65 </rule>
66 <rule pattern=":-">
67 <token type="Keyword"/>
68 </rule>
69 <rule pattern="\w+">
70 <token type="NameVariable"/>
71 </rule>
72 <rule pattern="[^}:&#34;\&#39;`$]+">
73 <token type="Punctuation"/>
74 </rule>
75 <rule pattern=":">
76 <token type="Punctuation"/>
77 </rule>
78 <rule>
79 <include state="root"/>
80 </rule>
81 </state>
82 <state name="paren">
83 <rule pattern="\)">
84 <token type="Keyword"/>
85 <pop depth="1"/>
86 </rule>
87 <rule>
88 <include state="root"/>
89 </rule>
90 </state>
91 <state name="backticks">
92 <rule pattern="`">
93 <token type="LiteralStringBacktick"/>
94 <pop depth="1"/>
95 </rule>
96 <rule>
97 <include state="root"/>
98 </rule>
99 </state>
100 <state name="root">
101 <rule>
102 <include state="basic"/>
103 </rule>
104 <rule pattern="\$\(">
105 <token type="Keyword"/>
106 <push state="paren"/>
107 </rule>
108 <rule pattern="\$\{#?">
109 <token type="Keyword"/>
110 <push state="curly"/>
111 </rule>
112 <rule pattern="`">
113 <token type="LiteralStringBacktick"/>
114 <push state="backticks"/>
115 </rule>
116 <rule>
117 <include state="data"/>
118 </rule>
119 </state>
120 </rules>
121</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml
new file mode 100644
index 0000000..e863bbd
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/termcap.xml
@@ -0,0 +1,75 @@
1<lexer>
2 <config>
3 <name>Termcap</name>
4 <alias>termcap</alias>
5 <filename>termcap</filename>
6 <filename>termcap.src</filename>
7 </config>
8 <rules>
9 <state name="defs">
10 <rule pattern="\\\n[ \t]*">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\n[ \t]*">
14 <token type="Text"/>
15 <pop depth="2"/>
16 </rule>
17 <rule pattern="(#)([0-9]+)">
18 <bygroups>
19 <token type="Operator"/>
20 <token type="LiteralNumber"/>
21 </bygroups>
22 </rule>
23 <rule pattern="=">
24 <token type="Operator"/>
25 <push state="data"/>
26 </rule>
27 <rule pattern=":">
28 <token type="Punctuation"/>
29 </rule>
30 <rule pattern="[^\s:=#]+">
31 <token type="NameClass"/>
32 </rule>
33 </state>
34 <state name="data">
35 <rule pattern="\\072">
36 <token type="Literal"/>
37 </rule>
38 <rule pattern=":">
39 <token type="Punctuation"/>
40 <pop depth="1"/>
41 </rule>
42 <rule pattern="[^:\\]+">
43 <token type="Literal"/>
44 </rule>
45 <rule pattern=".">
46 <token type="Literal"/>
47 </rule>
48 </state>
49 <state name="root">
50 <rule pattern="^#.*$">
51 <token type="Comment"/>
52 </rule>
53 <rule pattern="^[^\s#:|]+">
54 <token type="NameTag"/>
55 <push state="names"/>
56 </rule>
57 </state>
58 <state name="names">
59 <rule pattern="\n">
60 <token type="Text"/>
61 <pop depth="1"/>
62 </rule>
63 <rule pattern=":">
64 <token type="Punctuation"/>
65 <push state="defs"/>
66 </rule>
67 <rule pattern="\|">
68 <token type="Punctuation"/>
69 </rule>
70 <rule pattern="[^:|]+">
71 <token type="NameAttribute"/>
72 </rule>
73 </state>
74 </rules>
75</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml
new file mode 100644
index 0000000..9e8f56e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terminfo.xml
@@ -0,0 +1,84 @@
1<lexer>
2 <config>
3 <name>Terminfo</name>
4 <alias>terminfo</alias>
5 <filename>terminfo</filename>
6 <filename>terminfo.src</filename>
7 </config>
8 <rules>
9 <state name="names">
10 <rule pattern="\n">
11 <token type="Text"/>
12 <pop depth="1"/>
13 </rule>
14 <rule pattern="(,)([ \t]*)">
15 <bygroups>
16 <token type="Punctuation"/>
17 <token type="Text"/>
18 </bygroups>
19 <push state="defs"/>
20 </rule>
21 <rule pattern="\|">
22 <token type="Punctuation"/>
23 </rule>
24 <rule pattern="[^,|]+">
25 <token type="NameAttribute"/>
26 </rule>
27 </state>
28 <state name="defs">
29 <rule pattern="\n[ \t]+">
30 <token type="Text"/>
31 </rule>
32 <rule pattern="\n">
33 <token type="Text"/>
34 <pop depth="2"/>
35 </rule>
36 <rule pattern="(#)([0-9]+)">
37 <bygroups>
38 <token type="Operator"/>
39 <token type="LiteralNumber"/>
40 </bygroups>
41 </rule>
42 <rule pattern="=">
43 <token type="Operator"/>
44 <push state="data"/>
45 </rule>
46 <rule pattern="(,)([ \t]*)">
47 <bygroups>
48 <token type="Punctuation"/>
49 <token type="Text"/>
50 </bygroups>
51 </rule>
52 <rule pattern="[^\s,=#]+">
53 <token type="NameClass"/>
54 </rule>
55 </state>
56 <state name="data">
57 <rule pattern="\\[,\\]">
58 <token type="Literal"/>
59 </rule>
60 <rule pattern="(,)([ \t]*)">
61 <bygroups>
62 <token type="Punctuation"/>
63 <token type="Text"/>
64 </bygroups>
65 <pop depth="1"/>
66 </rule>
67 <rule pattern="[^\\,]+">
68 <token type="Literal"/>
69 </rule>
70 <rule pattern=".">
71 <token type="Literal"/>
72 </rule>
73 </state>
74 <state name="root">
75 <rule pattern="^#.*$">
76 <token type="Comment"/>
77 </rule>
78 <rule pattern="^[^\s#,|]+">
79 <token type="NameTag"/>
80 <push state="names"/>
81 </rule>
82 </state>
83 </rules>
84</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml
new file mode 100644
index 0000000..452f211
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/terraform.xml
@@ -0,0 +1,140 @@
1<lexer>
2 <config>
3 <name>Terraform</name>
4 <alias>terraform</alias>
5 <alias>tf</alias>
6 <filename>*.tf</filename>
7 <mime_type>application/x-tf</mime_type>
8 <mime_type>application/x-terraform</mime_type>
9 </config>
10 <rules>
11 <state name="string">
12 <rule pattern="&#34;">
13 <token type="LiteralStringDouble"/>
14 <pop depth="1"/>
15 </rule>
16 <rule pattern="\\\\">
17 <token type="LiteralStringDouble"/>
18 </rule>
19 <rule pattern="\\\\&#34;">
20 <token type="LiteralStringDouble"/>
21 </rule>
22 <rule pattern="\$\{">
23 <token type="LiteralStringInterpol"/>
24 <push state="interp-inside"/>
25 </rule>
26 <rule pattern="\$">
27 <token type="LiteralStringDouble"/>
28 </rule>
29 <rule pattern="[^&#34;\\\\$]+">
30 <token type="LiteralStringDouble"/>
31 </rule>
32 </state>
33 <state name="interp-inside">
34 <rule pattern="\}">
35 <token type="LiteralStringInterpol"/>
36 <pop depth="1"/>
37 </rule>
38 <rule>
39 <include state="root"/>
40 </rule>
41 </state>
42 <state name="root">
43 <rule pattern="[\[\](),.{}]">
44 <token type="Punctuation"/>
45 </rule>
46 <rule pattern="-?[0-9]+">
47 <token type="LiteralNumber"/>
48 </rule>
49 <rule pattern="=&gt;">
50 <token type="Punctuation"/>
51 </rule>
52 <rule pattern="(false|true)\b">
53 <token type="KeywordConstant"/>
54 </rule>
55 <rule pattern="/(?s)\*(((?!\*/).)*)\*/">
56 <token type="CommentMultiline"/>
57 </rule>
58 <rule pattern="\s*(#|//).*\n">
59 <token type="CommentSingle"/>
60 </rule>
61 <rule pattern="([a-zA-Z]\w*)(\s*)(=(?!&gt;))">
62 <bygroups>
63 <token type="NameAttribute"/>
64 <token type="Text"/>
65 <token type="Text"/>
66 </bygroups>
67 </rule>
68 <rule pattern="^\s*(provisioner|variable|resource|provider|module|output|data)\b">
69 <token type="KeywordReserved"/>
70 </rule>
71 <rule pattern="(for|in)\b">
72 <token type="Keyword"/>
73 </rule>
74 <rule pattern="(module|count|data|each|var)">
75 <token type="NameBuiltin"/>
76 </rule>
77 <rule pattern="(parseint|signum|floor|ceil|log|max|min|abs|pow)\b">
78 <token type="NameBuiltin"/>
79 </rule>
80 <rule pattern="(trimsuffix|formatlist|trimprefix|trimspace|regexall|replace|indent|strrev|format|substr|chomp|split|title|regex|lower|upper|trim|join)\b">
81 <token type="NameBuiltin"/>
82 </rule>
83 <rule pattern="[^.](setintersection|coalescelist|setsubtract|setproduct|matchkeys|chunklist|transpose|contains|distinct|coalesce|setunion|reverse|flatten|element|compact|lookup|length|concat|values|zipmap|range|merge|slice|index|list|sort|keys|map)\b">
84 <token type="NameBuiltin"/>
85 </rule>
86 <rule pattern="[^.](base64decode|base64encode|base64gzip|jsondecode|jsonencode|yamldecode|yamlencode|csvdecode|urlencode)\b">
87 <token type="NameBuiltin"/>
88 </rule>
89 <rule pattern="(templatefile|filebase64|fileexists|pathexpand|basename|abspath|fileset|dirname|file)\b">
90 <token type="NameBuiltin"/>
91 </rule>
92 <rule pattern="(formatdate|timestamp|timeadd)\b">
93 <token type="NameBuiltin"/>
94 </rule>
95 <rule pattern="(filebase64sha256|filebase64sha512|base64sha512|base64sha256|filesha256|rsadecrypt|filesha512|filesha1|filemd5|uuidv5|bcrypt|sha256|sha512|sha1|uuid|md5)\b">
96 <token type="NameBuiltin"/>
97 </rule>
98 <rule pattern="(cidrnetmask|cidrsubnet|cidrhost)\b">
99 <token type="NameBuiltin"/>
100 </rule>
101 <rule pattern="(tostring|tonumber|tobool|tolist|tomap|toset|can|try)\b">
102 <token type="NameBuiltin"/>
103 </rule>
104 <rule pattern="=(?!&gt;)|\+|-|\*|\/|:|!|%|&gt;|&lt;(?!&lt;)|&gt;=|&lt;=|==|!=|&amp;&amp;|\||\?">
105 <token type="Operator"/>
106 </rule>
107 <rule pattern="\n|\s+|\\\n">
108 <token type="Text"/>
109 </rule>
110 <rule pattern="[a-zA-Z]\w*">
111 <token type="NameOther"/>
112 </rule>
113 <rule pattern="&#34;">
114 <token type="LiteralStringDouble"/>
115 <push state="string"/>
116 </rule>
117 <rule pattern="(?s)(&lt;&lt;-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)">
118 <bygroups>
119 <token type="Operator"/>
120 <token type="Operator"/>
121 <token type="LiteralString"/>
122 <token type="Operator"/>
123 </bygroups>
124 </rule>
125 </state>
126 <state name="declaration">
127 <rule pattern="(\s*)(&#34;(?:\\\\|\\&#34;|[^&#34;])*&#34;)(\s*)">
128 <bygroups>
129 <token type="Text"/>
130 <token type="NameVariable"/>
131 <token type="Text"/>
132 </bygroups>
133 </rule>
134 <rule pattern="\{">
135 <token type="Punctuation"/>
136 <pop depth="1"/>
137 </rule>
138 </state>
139 </rules>
140</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml
new file mode 100644
index 0000000..809bb9a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tex.xml
@@ -0,0 +1,113 @@
1<lexer>
2 <config>
3 <name>TeX</name>
4 <alias>tex</alias>
5 <alias>latex</alias>
6 <filename>*.tex</filename>
7 <filename>*.aux</filename>
8 <filename>*.toc</filename>
9 <mime_type>text/x-tex</mime_type>
10 <mime_type>text/x-latex</mime_type>
11 </config>
12 <rules>
13 <state name="displaymath">
14 <rule pattern="\\\]">
15 <token type="LiteralString"/>
16 <pop depth="1"/>
17 </rule>
18 <rule pattern="\$\$">
19 <token type="LiteralString"/>
20 <pop depth="1"/>
21 </rule>
22 <rule pattern="\$">
23 <token type="NameBuiltin"/>
24 </rule>
25 <rule>
26 <include state="math"/>
27 </rule>
28 </state>
29 <state name="command">
30 <rule pattern="\[.*?\]">
31 <token type="NameAttribute"/>
32 </rule>
33 <rule pattern="\*">
34 <token type="Keyword"/>
35 </rule>
36 <rule>
37 <pop depth="1"/>
38 </rule>
39 </state>
40 <state name="general">
41 <rule pattern="%.*?\n">
42 <token type="Comment"/>
43 </rule>
44 <rule pattern="[{}]">
45 <token type="NameBuiltin"/>
46 </rule>
47 <rule pattern="[&amp;_^]">
48 <token type="NameBuiltin"/>
49 </rule>
50 </state>
51 <state name="root">
52 <rule pattern="\\\[">
53 <token type="LiteralStringBacktick"/>
54 <push state="displaymath"/>
55 </rule>
56 <rule pattern="\\\(">
57 <token type="LiteralString"/>
58 <push state="inlinemath"/>
59 </rule>
60 <rule pattern="\$\$">
61 <token type="LiteralStringBacktick"/>
62 <push state="displaymath"/>
63 </rule>
64 <rule pattern="\$">
65 <token type="LiteralString"/>
66 <push state="inlinemath"/>
67 </rule>
68 <rule pattern="\\([a-zA-Z]+|.)">
69 <token type="Keyword"/>
70 <push state="command"/>
71 </rule>
72 <rule pattern="\\$">
73 <token type="Keyword"/>
74 </rule>
75 <rule>
76 <include state="general"/>
77 </rule>
78 <rule pattern="[^\\$%&amp;_^{}]+">
79 <token type="Text"/>
80 </rule>
81 </state>
82 <state name="math">
83 <rule pattern="\\([a-zA-Z]+|.)">
84 <token type="NameVariable"/>
85 </rule>
86 <rule>
87 <include state="general"/>
88 </rule>
89 <rule pattern="[0-9]+">
90 <token type="LiteralNumber"/>
91 </rule>
92 <rule pattern="[-=!+*/()\[\]]">
93 <token type="Operator"/>
94 </rule>
95 <rule pattern="[^=!+*/()\[\]\\$%&amp;_^{}0-9-]+">
96 <token type="NameBuiltin"/>
97 </rule>
98 </state>
99 <state name="inlinemath">
100 <rule pattern="\\\)">
101 <token type="LiteralString"/>
102 <pop depth="1"/>
103 </rule>
104 <rule pattern="\$">
105 <token type="LiteralString"/>
106 <pop depth="1"/>
107 </rule>
108 <rule>
109 <include state="math"/>
110 </rule>
111 </state>
112 </rules>
113</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml
new file mode 100644
index 0000000..f14257d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml
@@ -0,0 +1,154 @@
1<lexer>
2 <config>
3 <name>Thrift</name>
4 <alias>thrift</alias>
5 <filename>*.thrift</filename>
6 <mime_type>application/x-thrift</mime_type>
7 </config>
8 <rules>
9 <state name="class">
10 <rule pattern="[a-zA-Z_]\w*">
11 <token type="NameClass"/>
12 <pop depth="1"/>
13 </rule>
14 <rule>
15 <pop depth="1"/>
16 </rule>
17 </state>
18 <state name="keywords">
19 <rule pattern="(async|oneway|extends|throws|required|optional)\b">
20 <token type="Keyword"/>
21 </rule>
22 <rule pattern="(true|false)\b">
23 <token type="KeywordConstant"/>
24 </rule>
25 <rule pattern="(const|typedef)\b">
26 <token type="KeywordDeclaration"/>
27 </rule>
28 <rule pattern="(smalltalk_category|smalltalk_prefix|delphi_namespace|csharp_namespace|ruby_namespace|xsd_namespace|cpp_namespace|php_namespace|xsd_nillable|xsd_optional|java_package|cocoa_prefix|perl_package|cpp_include|py_module|xsd_attrs|cpp_type|xsd_all|include)\b">
29 <token type="KeywordNamespace"/>
30 </rule>
31 <rule pattern="(double|binary|string|slist|senum|bool|void|byte|list|i64|map|set|i32|i16)\b">
32 <token type="KeywordType"/>
33 </rule>
34 <rule pattern="\b(__NAMESPACE__|synchronized|__FUNCTION__|__METHOD__|endforeach|implements|enddeclare|instanceof|transient|endswitch|protected|interface|__CLASS__|continue|__FILE__|abstract|function|endwhile|unsigned|register|volatile|__LINE__|declare|foreach|default|__DIR__|private|finally|dynamic|virtual|lambda|elseif|inline|switch|unless|endfor|delete|import|return|module|ensure|native|rescue|assert|sizeof|static|global|except|public|float|BEGIN|super|endif|yield|elsif|throw|clone|class|catch|until|break|retry|begin|raise|alias|while|print|undef|exec|with|when|case|redo|args|elif|this|then|self|goto|else|pass|next|var|for|xor|END|not|try|del|and|def|new|use|nil|end|if|do|is|or|in|as)\b">
35 <token type="KeywordReserved"/>
36 </rule>
37 </state>
38 <state name="numbers">
39 <rule pattern="[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)">
40 <token type="LiteralNumberFloat"/>
41 </rule>
42 <rule pattern="[+-]?0x[0-9A-Fa-f]+">
43 <token type="LiteralNumberHex"/>
44 </rule>
45 <rule pattern="[+-]?[0-9]+">
46 <token type="LiteralNumberInteger"/>
47 </rule>
48 </state>
49 <state name="root">
50 <rule>
51 <include state="whitespace"/>
52 </rule>
53 <rule>
54 <include state="comments"/>
55 </rule>
56 <rule pattern="&#34;">
57 <token type="LiteralStringDouble"/>
58 <combined state="stringescape" state="dqs"/>
59 </rule>
60 <rule pattern="\&#39;">
61 <token type="LiteralStringSingle"/>
62 <combined state="stringescape" state="sqs"/>
63 </rule>
64 <rule pattern="(namespace)(\s+)">
65 <bygroups>
66 <token type="KeywordNamespace"/>
67 <token type="TextWhitespace"/>
68 </bygroups>
69 <push state="namespace"/>
70 </rule>
71 <rule pattern="(enum|union|struct|service|exception)(\s+)">
72 <bygroups>
73 <token type="KeywordDeclaration"/>
74 <token type="TextWhitespace"/>
75 </bygroups>
76 <push state="class"/>
77 </rule>
78 <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$&lt;&gt;]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()">
79 <bygroups>
80 <usingself state="root"/>
81 <token type="NameFunction"/>
82 <token type="Text"/>
83 <token type="Operator"/>
84 </bygroups>
85 </rule>
86 <rule>
87 <include state="keywords"/>
88 </rule>
89 <rule>
90 <include state="numbers"/>
91 </rule>
92 <rule pattern="[&amp;=]">
93 <token type="Operator"/>
94 </rule>
95 <rule pattern="[:;,{}()&lt;&gt;\[\]]">
96 <token type="Punctuation"/>
97 </rule>
98 <rule pattern="[a-zA-Z_](\.\w|\w)*">
99 <token type="Name"/>
100 </rule>
101 </state>
102 <state name="dqs">
103 <rule pattern="&#34;">
104 <token type="LiteralStringDouble"/>
105 <pop depth="1"/>
106 </rule>
107 <rule pattern="[^\\&#34;\n]+">
108 <token type="LiteralStringDouble"/>
109 </rule>
110 </state>
111 <state name="namespace">
112 <rule pattern="[a-z*](\.\w|\w)*">
113 <token type="NameNamespace"/>
114 <pop depth="1"/>
115 </rule>
116 <rule>
117 <pop depth="1"/>
118 </rule>
119 </state>
120 <state name="whitespace">
121 <rule pattern="\n">
122 <token type="TextWhitespace"/>
123 </rule>
124 <rule pattern="\s+">
125 <token type="TextWhitespace"/>
126 </rule>
127 </state>
128 <state name="comments">
129 <rule pattern="#.*$">
130 <token type="Comment"/>
131 </rule>
132 <rule pattern="//.*?\n">
133 <token type="Comment"/>
134 </rule>
135 <rule pattern="/\*[\w\W]*?\*/">
136 <token type="CommentMultiline"/>
137 </rule>
138 </state>
139 <state name="stringescape">
140 <rule pattern="\\([\\nrt&#34;\&#39;])">
141 <token type="LiteralStringEscape"/>
142 </rule>
143 </state>
144 <state name="sqs">
145 <rule pattern="&#39;">
146 <token type="LiteralStringSingle"/>
147 <pop depth="1"/>
148 </rule>
149 <rule pattern="[^\\\&#39;\n]+">
150 <token type="LiteralStringSingle"/>
151 </rule>
152 </state>
153 </rules>
154</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml
new file mode 100644
index 0000000..3598cd7
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/toml.xml
@@ -0,0 +1,42 @@
1<lexer>
2 <config>
3 <name>TOML</name>
4 <alias>toml</alias>
5 <filename>*.toml</filename>
6 <mime_type>text/x-toml</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\s+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="#.*">
14 <token type="Comment"/>
15 </rule>
16 <rule pattern="(false|true)\b">
17 <token type="KeywordConstant"/>
18 </rule>
19 <rule pattern="\d\d\d\d-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d\+)?(Z|[+-]\d{2}:\d{2})">
20 <token type="LiteralDate"/>
21 </rule>
22 <rule pattern="[+-]?[0-9](_?\d)*\.\d+">
23 <token type="LiteralNumberFloat"/>
24 </rule>
25 <rule pattern="[+-]?[0-9](_?\d)*">
26 <token type="LiteralNumberInteger"/>
27 </rule>
28 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
29 <token type="LiteralStringDouble"/>
30 </rule>
31 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
32 <token type="LiteralStringSingle"/>
33 </rule>
34 <rule pattern="[.,=\[\]{}]">
35 <token type="Punctuation"/>
36 </rule>
37 <rule pattern="[A-Za-z0-9_-]+">
38 <token type="NameOther"/>
39 </rule>
40 </state>
41 </rules>
42</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml
new file mode 100644
index 0000000..3671f61
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/tradingview.xml
@@ -0,0 +1,81 @@
1<lexer>
2 <config>
3 <name>TradingView</name>
4 <alias>tradingview</alias>
5 <alias>tv</alias>
6 <filename>*.tv</filename>
7 <mime_type>text/x-tradingview</mime_type>
8 <dot_all>true</dot_all>
9 <ensure_nl>true</ensure_nl>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="[^\S\n]+|\n|[()]">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="(//.*?)(\n)">
17 <bygroups>
18 <token type="CommentSingle"/>
19 <token type="Text"/>
20 </bygroups>
21 </rule>
22 <rule pattern="&gt;=|&lt;=|==|!=|&gt;|&lt;|\?|-|\+|\*|\/|%|\[|\]">
23 <token type="Operator"/>
24 </rule>
25 <rule pattern="[:,.]">
26 <token type="Punctuation"/>
27 </rule>
28 <rule pattern="=">
29 <token type="KeywordPseudo"/>
30 </rule>
31 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;\n])*[&#34;\n]">
32 <token type="LiteralString"/>
33 </rule>
34 <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
35 <token type="LiteralString"/>
36 </rule>
37 <rule pattern="[0-9](\.[0-9]*)?([eE][+-][0-9]+)?">
38 <token type="LiteralNumber"/>
39 </rule>
40 <rule pattern="#[a-fA-F0-9]{8}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}">
41 <token type="LiteralStringOther"/>
42 </rule>
43 <rule pattern="(abs|acos|alertcondition|alma|asin|atan|atr|avg|barcolor|barssince|bgcolor|cci|ceil|change|cog|color\.new|correlation|cos|crossover|crossunder|cum|dev|ema|exp|falling|fill|fixnan|floor|heikinashi|highest|highestbars|hline|iff|kagi|label\.(delete|get_text|get_x|get_y|new|set_color|set_size|set_style|set_text|set_textcolor|set_x|set_xloc|set_xy|set_y|set_yloc)|line\.(new|delete|get_x1|get_x2|get_y1|get_y2|set_color|set_width|set_style|set_extend|set_xy1|set_xy2|set_x1|set_x2|set_y1|set_y2|set_xloc)|linebreak|linreg|log|log10|lowest|lowestbars|macd|max|max_bars_back|min|mom|nz|percentile_(linear_interpolation|nearest_rank)|percentrank|pivothigh|pivotlow|plot|plotarrow|plotbar|plotcandle|plotchar|plotshape|pointfigure|pow|renko|rising|rma|roc|round|rsi|sar|security|sign|sin|sma|sqrt|stdev|stoch|study|sum|swma|tan|timestamp|tostring|tsi|valuewhen|variance|vwma|wma|strategy\.(cancel|cancel_all|close|close_all|entry|exit|order|risk\.(allow_entry_in|max_cons_loss_days|max_drawdown|max_intraday_filled_orders|max_intraday_loss|max_position_size)))\b">
44 <token type="NameFunction"/>
45 </rule>
46 <rule pattern="\b(bool|color|cross|dayofmonth|dayofweek|float|hour|input|int|label|line|minute|month|na|offset|second|strategy|string|tickerid|time|tr|vwap|weekofyear|year)(\()">
47 <bygroups>
48 <token type="NameFunction"/>
49 <token type="Text"/>
50 </bygroups>
51 </rule>
52 <rule pattern="(accdist|adjustment\.(dividends|none|splits)|aqua|area|areabr|bar_index|black|blue|bool|circles|close|columns|currency\.(AUD|CAD|CHF|EUR|GBP|HKD|JPY|NOK|NONE|NZD|RUB|SEK|SGD|TRY|USD|ZAR)|color\.(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|dashed|dotted|dayofweek\.(monday|tuesday|wednesday|thursday|friday|saturday|sunday)|extend\.(both|left|right|none)|float|format\.(inherit|price|volume)|friday|fuchsia|gray|green|high|histogram|hl2|hlc3|hline\.style_(dotted|solid|dashed)|input\.(bool|float|integer|resolution|session|source|string|symbol)|integer|interval|isdaily|isdwm|isintraday|ismonthly|isweekly|label\.style_(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|none|square|triangledown|triangleup|xcross)|lime|line\.style_(dashed|dotted|solid|arrow_both|arrow_left|arrow_right)|linebr|location\.(abovebar|absolute|belowbar|bottom|top)|low|maroon|monday|n|navy|ohlc4|olive|open|orange|period|plot\.style_(area|areabr|circles|columns|cross|histogram|line|linebr|stepline)|purple|red|resolution|saturday|scale\.(left|none|right)|session|session\.(extended|regular)|silver|size\.(auto|huge|large|normal|small|tiny)|solid|source|stepline|string|sunday|symbol|syminfo\.(mintick|pointvalue|prefix|root|session|ticker|tickerid|timezone)|teal|thursday|ticker|timeframe\.(isdaily|isdwm|isintraday|ismonthly|isweekly|multiplier|period)|timenow|tuesday|volume|wednesday|white|yellow|strategy\.(cash|closedtrades|commission\.(cash_per_contract|cash_per_order|percent)|direction\.(all|long|short)|equity|eventrades|fixed|grossloss|grossprofit|initial_capital|long|losstrades|max_contracts_held_(all|long|short)|max_drawdown|netprofit|oca\.(cancel|none|reduce)|openprofit|opentrades|percent_of_equity|position_avg_price|position_entry_name|position_size|short|wintrades)|shape\.(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|square|triangledown|triangleup|xcross)|barstate\.is(first|history|last|new|realtime)|barmerge\.(gaps_on|gaps_off|lookahead_on|lookahead_off)|xloc\.bar_(index|time)|yloc\.(abovebar|belowbar|price))\b">
53 <token type="NameVariable"/>
54 </rule>
55 <rule pattern="(cross|dayofmonth|dayofweek|hour|minute|month|na|second|tickerid|time|tr|vwap|weekofyear|year)(\b[^\(])">
56 <bygroups>
57 <token type="NameVariable"/>
58 <token type="Text"/>
59 </bygroups>
60 </rule>
61 <rule pattern="(int|float|bool|color|string|label|line)(\b[^\(=.])">
62 <bygroups>
63 <token type="KeywordType"/>
64 <token type="Text"/>
65 </bygroups>
66 </rule>
67 <rule pattern="(var)\b">
68 <token type="KeywordType"/>
69 </rule>
70 <rule pattern="(true|false)\b">
71 <token type="KeywordConstant"/>
72 </rule>
73 <rule pattern="(and|or|not|if|else|for|to)\b">
74 <token type="OperatorWord"/>
75 </rule>
76 <rule pattern="@?[_a-zA-Z]\w*">
77 <token type="Text"/>
78 </rule>
79 </state>
80 </rules>
81</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml
new file mode 100644
index 0000000..1c9f38e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/transact-sql.xml
@@ -0,0 +1,137 @@
1<lexer>
2 <config>
3 <name>Transact-SQL</name>
4 <alias>tsql</alias>
5 <alias>t-sql</alias>
6 <mime_type>text/x-tsql</mime_type>
7 <case_insensitive>true</case_insensitive>
8 <not_multiline>true</not_multiline>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="\s+">
13 <token type="TextWhitespace"/>
14 </rule>
15 <rule pattern="--(?m).*?$\n?">
16 <token type="CommentSingle"/>
17 </rule>
18 <rule pattern="/\*">
19 <token type="CommentMultiline"/>
20 <push state="multiline-comments"/>
21 </rule>
22 <rule pattern="&#39;">
23 <token type="LiteralStringSingle"/>
24 <push state="string"/>
25 </rule>
26 <rule pattern="&#34;">
27 <token type="LiteralStringName"/>
28 <push state="quoted-ident"/>
29 </rule>
30 <rule pattern="(\*=|!=|!&gt;|\^=|&lt;=|&lt;&gt;|\|=|&amp;=|&gt;=|%=|\+=|/=|-=|!&lt;|::|/|-|%|\+|&amp;|&gt;|\||=|\^|&lt;|~|\*)">
31 <token type="Operator"/>
32 </rule>
33 <rule pattern="(intersect|between|except|exists|union|some|like|all|any|not|and|or|in)\b">
34 <token type="OperatorWord"/>
35 </rule>
36 <rule pattern="(uniqueidentifier|datetimeoffset|smalldatetime|hierarchyid|sql_variant|smallmoney|varbinary|datetime2|timestamp|datetime|smallint|nvarchar|decimal|tinyint|varchar|numeric|binary|bigint|cursor|image|nchar|money|float|table|ntext|text|time|real|date|char|int|bit|xml)\b">
37 <token type="NameClass"/>
38 </rule>
39 <rule pattern="(get_filestream_transaction_context|datetimeoffsetfromparts|fulltextserviceproperty|fulltextcatalogproperty|current_transaction_id|smalldatetimefromparts|min_active_rowversion|database_principal_id|current_request_id|databasepropertyex|connectionproperty|datetime2fromparts|object_schema_name|indexkey_property|filegroupproperty|current_timestamp|sysdatetimeoffset|has_perms_by_name|object_definition|datetimefromparts|assemblyproperty|todatetimeoffset|original_db_name|objectpropertyex|is_srvrolemember|error_procedure|binary_checksum|session_context|sp_helplanguage|newsequentialid|error_severity|original_login|objectproperty|opendatasource|columnproperty|sysutcdatetime|scope_identity|serverproperty|certprivatekey|filegroup_name|cursor_status|formatmessage|indexproperty|is_rolemember|datefromparts|timefromparts|string_escape|error_message|switchoffset|filegroup_id|string_split|current_user|checksum_agg|applock_test|session_user|typeproperty|rowcount_big|context_info|fileproperty|error_number|datediff_big|applock_mode|sysdatetime|error_state|json_modify|grouping_id|getansinull|try_convert|certencoded|system_user|permissions|schema_name|object_name|suser_sname|difference|xact_state|json_value|\$partition|row_number|json_query|getutcdate|col_length|decompress|error_line|openrowset|stats_date|pwdcompare|dense_rank|pwdencrypt|suser_name|is_member|index_col|quotename|host_name|charindex|parsename|isnumeric|user_name|replicate|openquery|count_big|type_name|object_id|try_parse|file_idex|substring|file_name|textvalid|suser_sid|schema_id|compress|grouping|suser_id|app_name|try_cast|col_name|datepart|datename|datediff|checksum|patindex|openjson|getdate|convert|openxml|file_id|db_name|radians|ceiling|unicode|reverse|dateadd|soundex|degrees|eomonth|user_id|type_id|host_id|textptr|replace|concat|square|isdate|stdevp|isjson|isnull|choose|format|stuff|floor|round|right|upper|log10|rtrim|lower|power|ltrim|space|db_id|month|parse|stdev|nchar|newid|count|ntile|ascii|char|year|varp|rank|left|sign|cast|acos|atn2|atan|asin|rand|sqrt|sin|max|min|tan|avg|cos|log|len|abs|cot|str|iif|exp|var|day|sum|pi)\b">
40 <token type="NameFunction"/>
41 </rule>
42 <rule pattern="(goto)(\s+)(\w+\b)">
43 <bygroups>
44 <token type="Keyword"/>
45 <token type="TextWhitespace"/>
46 <token type="NameLabel"/>
47 </bygroups>
48 </rule>
49 <rule pattern="(current_transform_group_for_type|current_default_transform_group|semanticsimilaritydetailstable|semanticsimilaritytable|semantickeyphrasetable|occurrences_regex|current_timestamp|character_length|percentile_cont|identity_insert|current_catalog|translate_regex|timezone_minute|substring_regex|percentile_disc|regr_intercept|localtimestamp|current_schema|opendatasource|position_regex|deterministic|timezone_hour|authorization|xmlattributes|corresponding|xmlnamespaces|fulltexttable|containstable|securityaudit|freetexttable|current_date|width_bucket|specifictype|session_user|intersection|percent_rank|sqlexception|current_path|current_role|current_time|xmlserialize|octet_length|nonclustered|current_user|reconfigure|xmlvalidate|cardinality|replication|try_convert|char_length|xmldocument|tablesample|identitycol|system_user|referencing|translation|submultiset|diagnostics|insensitive|distributed|constructor|constraints|stddev_samp|transaction|fillfactor|completion|destructor|descriptor|connection|dictionary|disconnect|initialize|statistics|sqlwarning|stddev_pop|constraint|references|privileges|parameters|deferrable|covar_samp|asymmetric|deallocate|asensitive|checkpoint|regr_count|xmlcomment|regr_slope|updatetext|like_regex|xmliterate|ordinality|openrowset|rowguidcol|xmlelement|bit_length|parameter|temporary|immediate|initially|cume_dist|symmetric|recursive|timestamp|substring|collation|regr_avgy|normalize|covar_pop|indicator|raiserror|structure|procedure|intersect|terminate|isolation|savepoint|precision|condition|openquery|assertion|translate|aggregate|operation|xmlconcat|character|xmlexists|partition|clustered|sensitive|exception|statement|xmlbinary|localtime|xmlforest|regr_avgx|writetext|smallint|shutdown|specific|allocate|overlaps|sqlstate|coalesce|sequence|xmlparse|external|distinct|truncate|absolute|position|sqlerror|xmlquery|xmltable|cascaded|rowcount|preorder|preserve|describe|rollback|freetext|regr_sxy|interval|restrict|continue|function|modifies|trailing|readtext|whenever|relative|deferred|multiset|regr_sxx|grouping|textsize|database|end-exec|var_samp|regr_syy|identity|national|variable|holdlock|contains|language|breadth|include|varying|varchar|waitfor|regr_r2|var_pop|release|unpivot|between|general|restore|integer|unknown|without|returns|cascade|primary|routine|iterate|fortran|foreign|section|overlay|postfix|uescape|lateral|leading|tsequal|xmlcast|catalog|extract|execute|percent|session|partial|setuser|similar|trigger|element|locator|sqlcode|dynamic|collate|nocheck|openxml|collect|compute|destroy|offsets|connect|convert|boolean|numeric|default|declare|decimal|current|natural|xmltext|prepare|window|unnest|called|exists|select|unique|escape|action|filter|nullif|module|object|modify|second|search|except|minute|scroll|schema|errlvl|equals|browse|method|update|member|atomic|option|xmlagg|rollup|double|domain|revoke|output|revert|return|fusion|global|delete|having|before|lineno|pascal|values|binary|system|cursor|column|insert|commit|public|static|ignore|create|prefix|within|backup|result|cross|names|prior|large|cycle|begin|usage|pivot|range|table|reads|input|close|inout|inner|while|index|where|level|limit|using|value|treat|class|group|grant|local|depth|check|deref|lower|state|print|write|start|upper|outer|right|xmlpi|match|order|found|sqlca|array|float|space|catch|under|first|alter|scope|alias|after|admin|throw|month|nchar|fetch|false|every|break|nclob|union|merge|count|zone|exit|file|save|size|rule|some|rows|both|else|bulk|blob|each|dump|drop|free|role|from|full|disk|call|desc|view|when|deny|goto|hold|dbcc|host|hour|real|date|read|data|proc|into|cube|than|then|with|time|join|kill|last|user|left|corr|tran|plan|less|like|clob|path|load|trim|work|char|over|sets|cast|case|only|null|none|year|next|open|exec|true|are|top|use|not|day|sum|dec|sql|end|set|for|row|get|bit|ada|add|mod|ref|int|new|off|key|old|pad|map|out|all|avg|max|and|asc|any|min|try|as|at|on|or|ln|is|of|in|if|go|to|no|by)\b">
50 <token type="Keyword"/>
51 </rule>
52 <rule pattern="(\[)([^]]+)(\])">
53 <bygroups>
54 <token type="Operator"/>
55 <token type="Name"/>
56 <token type="Operator"/>
57 </bygroups>
58 </rule>
59 <rule pattern="0x[0-9a-f]+">
60 <token type="LiteralNumberHex"/>
61 </rule>
62 <rule pattern="[0-9]+\.[0-9]*(e[+-]?[0-9]+)?">
63 <token type="LiteralNumberFloat"/>
64 </rule>
65 <rule pattern="\.[0-9]+(e[+-]?[0-9]+)?">
66 <token type="LiteralNumberFloat"/>
67 </rule>
68 <rule pattern="[0-9]+e[+-]?[0-9]+">
69 <token type="LiteralNumberFloat"/>
70 </rule>
71 <rule pattern="[0-9]+">
72 <token type="LiteralNumberInteger"/>
73 </rule>
74 <rule pattern="[;(),.]">
75 <token type="Punctuation"/>
76 </rule>
77 <rule pattern="@@\w+">
78 <token type="NameBuiltin"/>
79 </rule>
80 <rule pattern="@\w+">
81 <token type="NameVariable"/>
82 </rule>
83 <rule pattern="(\w+)(:)">
84 <bygroups>
85 <token type="NameLabel"/>
86 <token type="Punctuation"/>
87 </bygroups>
88 </rule>
89 <rule pattern="#?#?\w+">
90 <token type="Name"/>
91 </rule>
92 <rule pattern="\?">
93 <token type="NameVariableMagic"/>
94 </rule>
95 </state>
96 <state name="multiline-comments">
97 <rule pattern="/\*">
98 <token type="CommentMultiline"/>
99 <push state="multiline-comments"/>
100 </rule>
101 <rule pattern="\*/">
102 <token type="CommentMultiline"/>
103 <pop depth="1"/>
104 </rule>
105 <rule pattern="[^/*]+">
106 <token type="CommentMultiline"/>
107 </rule>
108 <rule pattern="[/*]">
109 <token type="CommentMultiline"/>
110 </rule>
111 </state>
112 <state name="string">
113 <rule pattern="[^&#39;]+">
114 <token type="LiteralStringSingle"/>
115 </rule>
116 <rule pattern="&#39;&#39;">
117 <token type="LiteralStringSingle"/>
118 </rule>
119 <rule pattern="&#39;">
120 <token type="LiteralStringSingle"/>
121 <pop depth="1"/>
122 </rule>
123 </state>
124 <state name="quoted-ident">
125 <rule pattern="[^&#34;]+">
126 <token type="LiteralStringName"/>
127 </rule>
128 <rule pattern="&#34;&#34;">
129 <token type="LiteralStringName"/>
130 </rule>
131 <rule pattern="&#34;">
132 <token type="LiteralStringName"/>
133 <pop depth="1"/>
134 </rule>
135 </state>
136 </rules>
137</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml
new file mode 100644
index 0000000..4eab69b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turing.xml
@@ -0,0 +1,82 @@
1<lexer>
2 <config>
3 <name>Turing</name>
4 <alias>turing</alias>
5 <filename>*.turing</filename>
6 <filename>*.tu</filename>
7 <mime_type>text/x-turing</mime_type>
8 </config>
9 <rules>
10 <state name="root">
11 <rule pattern="\n">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="\\\n">
18 <token type="Text"/>
19 </rule>
20 <rule pattern="%(.*?)\n">
21 <token type="CommentSingle"/>
22 </rule>
23 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
24 <token type="CommentMultiline"/>
25 </rule>
26 <rule pattern="(var|fcn|function|proc|procedure|process|class|end|record|type|begin|case|loop|for|const|union|monitor|module|handler)\b">
27 <token type="KeywordDeclaration"/>
28 </rule>
29 <rule pattern="(all|asm|assert|bind|bits|body|break|by|cheat|checked|close|condition|decreasing|def|deferred|else|elsif|exit|export|external|flexible|fork|forward|free|get|if|implement|import|include|inherit|init|invariant|label|new|objectclass|of|opaque|open|packed|pause|pervasive|post|pre|priority|put|quit|read|register|result|seek|self|set|signal|skip|tag|tell|then|timeout|to|unchecked|unqualified|wait|when|write)\b">
30 <token type="Keyword"/>
31 </rule>
32 <rule pattern="(true|false)\b">
33 <token type="KeywordConstant"/>
34 </rule>
35 <rule pattern="(addressint|boolean|pointer|string|array|real4|real8|nat1|int8|int4|int2|nat2|nat4|nat8|int1|real|char|enum|nat|int)\b">
36 <token type="KeywordType"/>
37 </rule>
38 <rule pattern="\d+i">
39 <token type="LiteralNumber"/>
40 </rule>
41 <rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
42 <token type="LiteralNumber"/>
43 </rule>
44 <rule pattern="\.\d+([Ee][-+]\d+)?i">
45 <token type="LiteralNumber"/>
46 </rule>
47 <rule pattern="\d+[Ee][-+]\d+i">
48 <token type="LiteralNumber"/>
49 </rule>
50 <rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
51 <token type="LiteralNumberFloat"/>
52 </rule>
53 <rule pattern="\.\d+([eE][+\-]?\d+)?">
54 <token type="LiteralNumberFloat"/>
55 </rule>
56 <rule pattern="0[0-7]+">
57 <token type="LiteralNumberOct"/>
58 </rule>
59 <rule pattern="0[xX][0-9a-fA-F]+">
60 <token type="LiteralNumberHex"/>
61 </rule>
62 <rule pattern="(0|[1-9][0-9]*)">
63 <token type="LiteralNumberInteger"/>
64 </rule>
65 <rule pattern="(div|mod|rem|\*\*|=|&lt;|&gt;|&gt;=|&lt;=|not=|not|and|or|xor|=&gt;|in|shl|shr|-&gt;|~|~=|~in|&amp;|:=|\.\.|[\^+\-*/&amp;#])">
66 <token type="Operator"/>
67 </rule>
68 <rule pattern="&#39;(\\[&#39;&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#39;">
69 <token type="LiteralStringChar"/>
70 </rule>
71 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
72 <token type="LiteralString"/>
73 </rule>
74 <rule pattern="[()\[\]{}.,:]">
75 <token type="Punctuation"/>
76 </rule>
77 <rule pattern="[^\W\d]\w*">
78 <token type="NameOther"/>
79 </rule>
80 </state>
81 </rules>
82</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml
new file mode 100644
index 0000000..7c572f9
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/turtle.xml
@@ -0,0 +1,170 @@
1<lexer>
2 <config>
3 <name>Turtle</name>
4 <alias>turtle</alias>
5 <filename>*.ttl</filename>
6 <mime_type>text/turtle</mime_type>
7 <mime_type>application/x-turtle</mime_type>
8 <case_insensitive>true</case_insensitive>
9 <not_multiline>true</not_multiline>
10 </config>
11 <rules>
12 <state name="triple-double-quoted-string">
13 <rule pattern="&#34;&#34;&#34;">
14 <token type="LiteralString"/>
15 <push state="end-of-string"/>
16 </rule>
17 <rule pattern="[^\\]+">
18 <token type="LiteralString"/>
19 </rule>
20 <rule pattern="\\">
21 <token type="LiteralString"/>
22 <push state="string-escape"/>
23 </rule>
24 </state>
25 <state name="single-double-quoted-string">
26 <rule pattern="&#34;">
27 <token type="LiteralString"/>
28 <push state="end-of-string"/>
29 </rule>
30 <rule pattern="[^&#34;\\\n]+">
31 <token type="LiteralString"/>
32 </rule>
33 <rule pattern="\\">
34 <token type="LiteralString"/>
35 <push state="string-escape"/>
36 </rule>
37 </state>
38 <state name="triple-single-quoted-string">
39 <rule pattern="&#39;&#39;&#39;">
40 <token type="LiteralString"/>
41 <push state="end-of-string"/>
42 </rule>
43 <rule pattern="[^\\]+">
44 <token type="LiteralString"/>
45 </rule>
46 <rule pattern="\\">
47 <token type="LiteralString"/>
48 <push state="string-escape"/>
49 </rule>
50 </state>
51 <state name="single-single-quoted-string">
52 <rule pattern="&#39;">
53 <token type="LiteralString"/>
54 <push state="end-of-string"/>
55 </rule>
56 <rule pattern="[^&#39;\\\n]+">
57 <token type="LiteralString"/>
58 </rule>
59 <rule pattern="\\">
60 <token type="LiteralString"/>
61 <push state="string-escape"/>
62 </rule>
63 </state>
64 <state name="string-escape">
65 <rule pattern=".">
66 <token type="LiteralString"/>
67 <pop depth="1"/>
68 </rule>
69 </state>
70 <state name="end-of-string">
71 <rule pattern="(@)([a-z]+(:?-[a-z0-9]+)*)">
72 <bygroups>
73 <token type="Operator"/>
74 <token type="GenericEmph"/>
75 <token type="GenericEmph"/>
76 </bygroups>
77 <pop depth="2"/>
78 </rule>
79 <rule pattern="(\^\^)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)">
80 <bygroups>
81 <token type="Operator"/>
82 <token type="GenericEmph"/>
83 </bygroups>
84 <pop depth="2"/>
85 </rule>
86 <rule pattern="(\^\^)((?:[a-z][\w-]*)?\:)([a-z][\w-]*)">
87 <bygroups>
88 <token type="Operator"/>
89 <token type="GenericEmph"/>
90 <token type="GenericEmph"/>
91 </bygroups>
92 <pop depth="2"/>
93 </rule>
94 <rule>
95 <pop depth="2"/>
96 </rule>
97 </state>
98 <state name="root">
99 <rule pattern="\s+">
100 <token type="TextWhitespace"/>
101 </rule>
102 <rule pattern="(@base|BASE)(\s+)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)(\s*)(\.?)">
103 <bygroups>
104 <token type="Keyword"/>
105 <token type="TextWhitespace"/>
106 <token type="NameVariable"/>
107 <token type="TextWhitespace"/>
108 <token type="Punctuation"/>
109 </bygroups>
110 </rule>
111 <rule pattern="(@prefix|PREFIX)(\s+)((?:[a-z][\w-]*)?\:)(\s+)(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)(\s*)(\.?)">
112 <bygroups>
113 <token type="Keyword"/>
114 <token type="TextWhitespace"/>
115 <token type="NameNamespace"/>
116 <token type="TextWhitespace"/>
117 <token type="NameVariable"/>
118 <token type="TextWhitespace"/>
119 <token type="Punctuation"/>
120 </bygroups>
121 </rule>
122 <rule pattern="(?&lt;=\s)a(?=\s)">
123 <token type="KeywordType"/>
124 </rule>
125 <rule pattern="(&lt;[^&lt;&gt;&#34;{}|^`\\\x00-\x20]*&gt;)">
126 <token type="NameVariable"/>
127 </rule>
128 <rule pattern="((?:[a-z][\w-]*)?\:)([a-z][\w-]*)">
129 <bygroups>
130 <token type="NameNamespace"/>
131 <token type="NameTag"/>
132 </bygroups>
133 </rule>
134 <rule pattern="#[^\n]+">
135 <token type="Comment"/>
136 </rule>
137 <rule pattern="\b(true|false)\b">
138 <token type="Literal"/>
139 </rule>
140 <rule pattern="[+\-]?\d*\.\d+">
141 <token type="LiteralNumberFloat"/>
142 </rule>
143 <rule pattern="[+\-]?\d*(:?\.\d+)?E[+\-]?\d+">
144 <token type="LiteralNumberFloat"/>
145 </rule>
146 <rule pattern="[+\-]?\d+">
147 <token type="LiteralNumberInteger"/>
148 </rule>
149 <rule pattern="[\[\](){}.;,:^]">
150 <token type="Punctuation"/>
151 </rule>
152 <rule pattern="&#34;&#34;&#34;">
153 <token type="LiteralString"/>
154 <push state="triple-double-quoted-string"/>
155 </rule>
156 <rule pattern="&#34;">
157 <token type="LiteralString"/>
158 <push state="single-double-quoted-string"/>
159 </rule>
160 <rule pattern="&#39;&#39;&#39;">
161 <token type="LiteralString"/>
162 <push state="triple-single-quoted-string"/>
163 </rule>
164 <rule pattern="&#39;">
165 <token type="LiteralString"/>
166 <push state="single-single-quoted-string"/>
167 </rule>
168 </state>
169 </rules>
170</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml
new file mode 100644
index 0000000..5b0496d
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/twig.xml
@@ -0,0 +1,154 @@
1<lexer>
2 <config>
3 <name>Twig</name>
4 <alias>twig</alias>
5 <mime_type>application/x-twig</mime_type>
6 <dot_all>true</dot_all>
7 </config>
8 <rules>
9 <state name="var">
10 <rule pattern="\s+">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="(-?)(\}\})">
14 <bygroups>
15 <token type="Text"/>
16 <token type="CommentPreproc"/>
17 </bygroups>
18 <pop depth="1"/>
19 </rule>
20 <rule>
21 <include state="varnames"/>
22 </rule>
23 </state>
24 <state name="tag">
25 <rule pattern="\s+">
26 <token type="Text"/>
27 </rule>
28 <rule pattern="(-?)(%\})">
29 <bygroups>
30 <token type="Text"/>
31 <token type="CommentPreproc"/>
32 </bygroups>
33 <pop depth="1"/>
34 </rule>
35 <rule>
36 <include state="varnames"/>
37 </rule>
38 <rule pattern=".">
39 <token type="Punctuation"/>
40 </rule>
41 </state>
42 <state name="root">
43 <rule pattern="[^{]+">
44 <token type="Other"/>
45 </rule>
46 <rule pattern="\{\{">
47 <token type="CommentPreproc"/>
48 <push state="var"/>
49 </rule>
50 <rule pattern="\{\#.*?\#\}">
51 <token type="Comment"/>
52 </rule>
53 <rule pattern="(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})">
54 <bygroups>
55 <token type="CommentPreproc"/>
56 <token type="Text"/>
57 <token type="Keyword"/>
58 <token type="Text"/>
59 <token type="CommentPreproc"/>
60 <token type="Other"/>
61 <token type="CommentPreproc"/>
62 <token type="Text"/>
63 <token type="Keyword"/>
64 <token type="Text"/>
65 <token type="CommentPreproc"/>
66 </bygroups>
67 </rule>
68 <rule pattern="(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})">
69 <bygroups>
70 <token type="CommentPreproc"/>
71 <token type="Text"/>
72 <token type="Keyword"/>
73 <token type="Text"/>
74 <token type="CommentPreproc"/>
75 <token type="Other"/>
76 <token type="CommentPreproc"/>
77 <token type="Text"/>
78 <token type="Keyword"/>
79 <token type="Text"/>
80 <token type="CommentPreproc"/>
81 </bygroups>
82 </rule>
83 <rule pattern="(\{%)(-?\s*)(filter)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
84 <bygroups>
85 <token type="CommentPreproc"/>
86 <token type="Text"/>
87 <token type="Keyword"/>
88 <token type="Text"/>
89 <token type="NameFunction"/>
90 </bygroups>
91 <push state="tag"/>
92 </rule>
93 <rule pattern="(\{%)(-?\s*)([a-zA-Z_]\w*)">
94 <bygroups>
95 <token type="CommentPreproc"/>
96 <token type="Text"/>
97 <token type="Keyword"/>
98 </bygroups>
99 <push state="tag"/>
100 </rule>
101 <rule pattern="\{">
102 <token type="Other"/>
103 </rule>
104 </state>
105 <state name="varnames">
106 <rule pattern="(\|)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
107 <bygroups>
108 <token type="Operator"/>
109 <token type="Text"/>
110 <token type="NameFunction"/>
111 </bygroups>
112 </rule>
113 <rule pattern="(is)(\s+)(not)?(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
114 <bygroups>
115 <token type="Keyword"/>
116 <token type="Text"/>
117 <token type="Keyword"/>
118 <token type="Text"/>
119 <token type="NameFunction"/>
120 </bygroups>
121 </rule>
122 <rule pattern="(?i)(true|false|none|null)\b">
123 <token type="KeywordPseudo"/>
124 </rule>
125 <rule pattern="(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\b">
126 <token type="Keyword"/>
127 </rule>
128 <rule pattern="(loop|block|parent)\b">
129 <token type="NameBuiltin"/>
130 </rule>
131 <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
132 <token type="NameVariable"/>
133 </rule>
134 <rule pattern="\.(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
135 <token type="NameVariable"/>
136 </rule>
137 <rule pattern="\.[0-9]+">
138 <token type="LiteralNumber"/>
139 </rule>
140 <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
141 <token type="LiteralStringDouble"/>
142 </rule>
143 <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
144 <token type="LiteralStringSingle"/>
145 </rule>
146 <rule pattern="([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[&gt;&lt;=]=?)">
147 <token type="Operator"/>
148 </rule>
149 <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
150 <token type="LiteralNumber"/>
151 </rule>
152 </state>
153 </rules>
154</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml
new file mode 100644
index 0000000..cae5a76
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typescript.xml
@@ -0,0 +1,261 @@
1<lexer>
2 <config>
3 <name>TypeScript</name>
4 <alias>ts</alias>
5 <alias>tsx</alias>
6 <alias>typescript</alias>
7 <filename>*.ts</filename>
8 <filename>*.tsx</filename>
9 <mime_type>text/x-typescript</mime_type>
10 <dot_all>true</dot_all>
11 <ensure_nl>true</ensure_nl>
12 </config>
13 <rules>
14 <state name="expression">
15 <rule pattern="{">
16 <token type="Punctuation"/>
17 <push/>
18 </rule>
19 <rule pattern="}">
20 <token type="Punctuation"/>
21 <pop depth="1"/>
22 </rule>
23 <rule>
24 <include state="root"/>
25 </rule>
26 </state>
27 <state name="jsx">
28 <rule pattern="(&lt;)(/?)(&gt;)">
29 <bygroups>
30 <token type="Punctuation"/>
31 <token type="Punctuation"/>
32 <token type="Punctuation"/>
33 </bygroups>
34 </rule>
35 <rule pattern="(&lt;)([\w\.]+)">
36 <bygroups>
37 <token type="Punctuation"/>
38 <token type="NameTag"/>
39 </bygroups>
40 <push state="tag"/>
41 </rule>
42 <rule pattern="(&lt;)(/)([\w\.]*)(&gt;)">
43 <bygroups>
44 <token type="Punctuation"/>
45 <token type="Punctuation"/>
46 <token type="NameTag"/>
47 <token type="Punctuation"/>
48 </bygroups>
49 </rule>
50 </state>
51 <state name="tag">
52 <rule pattern="\s+">
53 <token type="Text"/>
54 </rule>
55 <rule pattern="([\w]+\s*)(=)(\s*)">
56 <bygroups>
57 <token type="NameAttribute"/>
58 <token type="Operator"/>
59 <token type="Text"/>
60 </bygroups>
61 <push state="attr"/>
62 </rule>
63 <rule pattern="[{}]+">
64 <token type="Punctuation"/>
65 </rule>
66 <rule pattern="[\w\.]+">
67 <token type="NameAttribute"/>
68 </rule>
69 <rule pattern="(/?)(\s*)(&gt;)">
70 <bygroups>
71 <token type="Punctuation"/>
72 <token type="Text"/>
73 <token type="Punctuation"/>
74 </bygroups>
75 <pop depth="1"/>
76 </rule>
77 </state>
78 <state name="commentsandwhitespace">
79 <rule pattern="\s+">
80 <token type="Text"/>
81 </rule>
82 <rule pattern="&lt;!--">
83 <token type="Comment"/>
84 </rule>
85 <rule pattern="//.*?\n">
86 <token type="CommentSingle"/>
87 </rule>
88 <rule pattern="/\*.*?\*/">
89 <token type="CommentMultiline"/>
90 </rule>
91 </state>
92 <state name="badregex">
93 <rule pattern="\n">
94 <token type="Text"/>
95 <pop depth="1"/>
96 </rule>
97 </state>
98 <state name="interp">
99 <rule pattern="`">
100 <token type="LiteralStringBacktick"/>
101 <pop depth="1"/>
102 </rule>
103 <rule pattern="\\\\">
104 <token type="LiteralStringBacktick"/>
105 </rule>
106 <rule pattern="\\`">
107 <token type="LiteralStringBacktick"/>
108 </rule>
109 <rule pattern="\$\{">
110 <token type="LiteralStringInterpol"/>
111 <push state="interp-inside"/>
112 </rule>
113 <rule pattern="\$">
114 <token type="LiteralStringBacktick"/>
115 </rule>
116 <rule pattern="[^`\\$]+">
117 <token type="LiteralStringBacktick"/>
118 </rule>
119 </state>
120 <state name="attr">
121 <rule pattern="{">
122 <token type="Punctuation"/>
123 <push state="expression"/>
124 </rule>
125 <rule pattern="&#34;.*?&#34;">
126 <token type="LiteralString"/>
127 <pop depth="1"/>
128 </rule>
129 <rule pattern="&#39;.*?&#39;">
130 <token type="LiteralString"/>
131 <pop depth="1"/>
132 </rule>
133 <rule>
134 <pop depth="1"/>
135 </rule>
136 </state>
137 <state name="interp-inside">
138 <rule pattern="\}">
139 <token type="LiteralStringInterpol"/>
140 <pop depth="1"/>
141 </rule>
142 <rule>
143 <include state="root"/>
144 </rule>
145 </state>
146 <state name="slashstartsregex">
147 <rule>
148 <include state="commentsandwhitespace"/>
149 </rule>
150 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
151 <token type="LiteralStringRegex"/>
152 <pop depth="1"/>
153 </rule>
154 <rule pattern="(?=/)">
155 <token type="Text"/>
156 <push state="#pop" state="badregex"/>
157 </rule>
158 <rule>
159 <pop depth="1"/>
160 </rule>
161 </state>
162 <state name="root">
163 <rule>
164 <include state="jsx"/>
165 </rule>
166 <rule pattern="^(?=\s|/|&lt;!--)">
167 <token type="Text"/>
168 <push state="slashstartsregex"/>
169 </rule>
170 <rule>
171 <include state="commentsandwhitespace"/>
172 </rule>
173 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
174 <token type="Operator"/>
175 <push state="slashstartsregex"/>
176 </rule>
177 <rule pattern="[{(\[;,]">
178 <token type="Punctuation"/>
179 <push state="slashstartsregex"/>
180 </rule>
181 <rule pattern="[})\].]">
182 <token type="Punctuation"/>
183 </rule>
184 <rule pattern="(for|in|of|while|do|break|return|yield|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|keyof|asserts|is|infer|await|void|this)\b">
185 <token type="Keyword"/>
186 <push state="slashstartsregex"/>
187 </rule>
188 <rule pattern="(var|let|with|function)\b">
189 <token type="KeywordDeclaration"/>
190 <push state="slashstartsregex"/>
191 </rule>
192 <rule pattern="(abstract|async|boolean|class|const|debugger|enum|export|extends|from|get|global|goto|implements|import|interface|namespace|package|private|protected|public|readonly|require|set|static|super|type)\b">
193 <token type="KeywordReserved"/>
194 </rule>
195 <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
196 <token type="KeywordConstant"/>
197 </rule>
198 <rule pattern="(Array|Boolean|Date|Error|Function|Math|Number|Object|Packages|RegExp|String|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\b">
199 <token type="NameBuiltin"/>
200 </rule>
201 <rule pattern="\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)">
202 <bygroups>
203 <token type="KeywordReserved"/>
204 <token type="Text"/>
205 <token type="NameOther"/>
206 <token type="Text"/>
207 </bygroups>
208 <push state="slashstartsregex"/>
209 </rule>
210 <rule pattern="\b(string|bool|number|any|never|object|symbol|unique|unknown|bigint)\b">
211 <token type="KeywordType"/>
212 </rule>
213 <rule pattern="\b(constructor|declare|interface|as)\b">
214 <token type="KeywordReserved"/>
215 </rule>
216 <rule pattern="(super)(\s*)(\([\w,?.$\s]+\s*\))">
217 <bygroups>
218 <token type="KeywordReserved"/>
219 <token type="Text"/>
220 </bygroups>
221 <push state="slashstartsregex"/>
222 </rule>
223 <rule pattern="([a-zA-Z_?.$][\w?.$]*)\(\) \{">
224 <token type="NameOther"/>
225 <push state="slashstartsregex"/>
226 </rule>
227 <rule pattern="([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)">
228 <bygroups>
229 <token type="NameOther"/>
230 <token type="Text"/>
231 <token type="KeywordType"/>
232 </bygroups>
233 </rule>
234 <rule pattern="[$a-zA-Z_]\w*">
235 <token type="NameOther"/>
236 </rule>
237 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
238 <token type="LiteralNumberFloat"/>
239 </rule>
240 <rule pattern="0x[0-9a-fA-F]+">
241 <token type="LiteralNumberHex"/>
242 </rule>
243 <rule pattern="[0-9]+">
244 <token type="LiteralNumberInteger"/>
245 </rule>
246 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
247 <token type="LiteralStringDouble"/>
248 </rule>
249 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
250 <token type="LiteralStringSingle"/>
251 </rule>
252 <rule pattern="`">
253 <token type="LiteralStringBacktick"/>
254 <push state="interp"/>
255 </rule>
256 <rule pattern="@\w+">
257 <token type="KeywordDeclaration"/>
258 </rule>
259 </state>
260 </rules>
261</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml
new file mode 100644
index 0000000..62c42c1
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscriptcssdata.xml
@@ -0,0 +1,52 @@
1<lexer>
2 <config>
3 <name>TypoScriptCssData</name>
4 <alias>typoscriptcssdata</alias>
5 </config>
6 <rules>
7 <state name="root">
8 <rule pattern="(.*)(###\w+###)(.*)">
9 <bygroups>
10 <token type="LiteralString"/>
11 <token type="NameConstant"/>
12 <token type="LiteralString"/>
13 </bygroups>
14 </rule>
15 <rule pattern="(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})">
16 <bygroups>
17 <token type="LiteralStringSymbol"/>
18 <token type="Operator"/>
19 <token type="NameConstant"/>
20 <token type="NameConstant"/>
21 <token type="LiteralStringSymbol"/>
22 </bygroups>
23 </rule>
24 <rule pattern="(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)">
25 <bygroups>
26 <token type="LiteralString"/>
27 <token type="LiteralStringSymbol"/>
28 <token type="NameConstant"/>
29 <token type="Operator"/>
30 <token type="NameConstant"/>
31 <token type="LiteralStringSymbol"/>
32 <token type="LiteralString"/>
33 </bygroups>
34 </rule>
35 <rule pattern="\s+">
36 <token type="Text"/>
37 </rule>
38 <rule pattern="/\*(?:(?!\*/).)*\*/">
39 <token type="Comment"/>
40 </rule>
41 <rule pattern="(?&lt;!(#|\&#39;|&#34;))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)">
42 <token type="Comment"/>
43 </rule>
44 <rule pattern="[&lt;&gt;,:=.*%+|]">
45 <token type="LiteralString"/>
46 </rule>
47 <rule pattern="[\w&#34;\-!/&amp;;(){}]+">
48 <token type="LiteralString"/>
49 </rule>
50 </state>
51 </rules>
52</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml
new file mode 100644
index 0000000..1b0af3a
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/typoscripthtmldata.xml
@@ -0,0 +1,52 @@
1<lexer>
2 <config>
3 <name>TypoScriptHtmlData</name>
4 <alias>typoscripthtmldata</alias>
5 </config>
6 <rules>
7 <state name="root">
8 <rule pattern="(INCLUDE_TYPOSCRIPT)">
9 <token type="NameClass"/>
10 </rule>
11 <rule pattern="(EXT|FILE|LLL):[^}\n&#34;]*">
12 <token type="LiteralString"/>
13 </rule>
14 <rule pattern="(.*)(###\w+###)(.*)">
15 <bygroups>
16 <token type="LiteralString"/>
17 <token type="NameConstant"/>
18 <token type="LiteralString"/>
19 </bygroups>
20 </rule>
21 <rule pattern="(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})">
22 <bygroups>
23 <token type="LiteralStringSymbol"/>
24 <token type="Operator"/>
25 <token type="NameConstant"/>
26 <token type="NameConstant"/>
27 <token type="LiteralStringSymbol"/>
28 </bygroups>
29 </rule>
30 <rule pattern="(.*)(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})(.*)">
31 <bygroups>
32 <token type="LiteralString"/>
33 <token type="LiteralStringSymbol"/>
34 <token type="NameConstant"/>
35 <token type="Operator"/>
36 <token type="NameConstant"/>
37 <token type="LiteralStringSymbol"/>
38 <token type="LiteralString"/>
39 </bygroups>
40 </rule>
41 <rule pattern="\s+">
42 <token type="Text"/>
43 </rule>
44 <rule pattern="[&lt;&gt;,:=.*%+|]">
45 <token type="LiteralString"/>
46 </rule>
47 <rule pattern="[\w&#34;\-!/&amp;;(){}#]+">
48 <token type="LiteralString"/>
49 </rule>
50 </state>
51 </rules>
52</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml
new file mode 100644
index 0000000..9f85afd
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vb_net.xml
@@ -0,0 +1,162 @@
1<lexer>
2 <config>
3 <name>VB.net</name>
4 <alias>vb.net</alias>
5 <alias>vbnet</alias>
6 <filename>*.vb</filename>
7 <filename>*.bas</filename>
8 <mime_type>text/x-vbnet</mime_type>
9 <mime_type>text/x-vba</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="dim">
14 <rule pattern="[_\w][\w]*">
15 <token type="NameVariable"/>
16 <pop depth="1"/>
17 </rule>
18 <rule>
19 <pop depth="1"/>
20 </rule>
21 </state>
22 <state name="funcname">
23 <rule pattern="[_\w][\w]*">
24 <token type="NameFunction"/>
25 <pop depth="1"/>
26 </rule>
27 </state>
28 <state name="classname">
29 <rule pattern="[_\w][\w]*">
30 <token type="NameClass"/>
31 <pop depth="1"/>
32 </rule>
33 </state>
34 <state name="namespace">
35 <rule pattern="[_\w][\w]*">
36 <token type="NameNamespace"/>
37 </rule>
38 <rule pattern="\.">
39 <token type="NameNamespace"/>
40 </rule>
41 <rule>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="end">
46 <rule pattern="\s+">
47 <token type="Text"/>
48 </rule>
49 <rule pattern="(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b">
50 <token type="Keyword"/>
51 <pop depth="1"/>
52 </rule>
53 <rule>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="root">
58 <rule pattern="^\s*&lt;.*?&gt;">
59 <token type="NameAttribute"/>
60 </rule>
61 <rule pattern="\s+">
62 <token type="Text"/>
63 </rule>
64 <rule pattern="\n">
65 <token type="Text"/>
66 </rule>
67 <rule pattern="rem\b.*?\n">
68 <token type="Comment"/>
69 </rule>
70 <rule pattern="&#39;.*?\n">
71 <token type="Comment"/>
72 </rule>
73 <rule pattern="#If\s.*?\sThen|#ElseIf\s.*?\sThen|#Else|#End\s+If|#Const|#ExternalSource.*?\n|#End\s+ExternalSource|#Region.*?\n|#End\s+Region|#ExternalChecksum">
74 <token type="CommentPreproc"/>
75 </rule>
76 <rule pattern="[(){}!#,.:]">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="Option\s+(Strict|Explicit|Compare)\s+(On|Off|Binary|Text)">
80 <token type="KeywordDeclaration"/>
81 </rule>
82 <rule pattern="(?&lt;!\.)(NotOverridable|NotInheritable|RemoveHandler|MustOverride|Overridable|MustInherit|Implements|RaiseEvent|AddHandler|ParamArray|WithEvents|DirectCast|Overrides|Overloads|Protected|WriteOnly|Interface|Narrowing|Inherits|Widening|SyncLock|ReadOnly|Operator|Continue|Delegate|Optional|MyClass|Declare|CUShort|Handles|Default|Shadows|TryCast|Finally|Private|Nothing|Partial|CSByte|Select|Option|Return|Friend|Resume|ElseIf|MyBase|Shared|Single|Public|CShort|Static|Global|Catch|CType|Error|CUInt|Using|While|GoSub|False|CDate|Throw|Event|CChar|CULng|CBool|Erase|ByVal|ByRef|Alias|EndIf|CByte|ReDim|Stop|Call|Wend|Next|CLng|Loop|True|CDec|With|Then|GoTo|CObj|CSng|Exit|CStr|Else|Each|Case|CInt|Step|When|CDbl|Set|For|Let|Lib|Try|New|Not|Get|On|To|Do|If|Of|Me)\b">
83 <token type="Keyword"/>
84 </rule>
85 <rule pattern="(?&lt;!\.)End\b">
86 <token type="Keyword"/>
87 <push state="end"/>
88 </rule>
89 <rule pattern="(?&lt;!\.)(Dim|Const)\b">
90 <token type="Keyword"/>
91 <push state="dim"/>
92 </rule>
93 <rule pattern="(?&lt;!\.)(Function|Sub|Property)(\s+)">
94 <bygroups>
95 <token type="Keyword"/>
96 <token type="Text"/>
97 </bygroups>
98 <push state="funcname"/>
99 </rule>
100 <rule pattern="(?&lt;!\.)(Class|Structure|Enum)(\s+)">
101 <bygroups>
102 <token type="Keyword"/>
103 <token type="Text"/>
104 </bygroups>
105 <push state="classname"/>
106 </rule>
107 <rule pattern="(?&lt;!\.)(Module|Namespace|Imports)(\s+)">
108 <bygroups>
109 <token type="Keyword"/>
110 <token type="Text"/>
111 </bygroups>
112 <push state="namespace"/>
113 </rule>
114 <rule pattern="(?&lt;!\.)(Boolean|Byte|Char|Date|Decimal|Double|Integer|Long|Object|SByte|Short|Single|String|Variant|UInteger|ULong|UShort)\b">
115 <token type="KeywordType"/>
116 </rule>
117 <rule pattern="(?&lt;!\.)(AddressOf|And|AndAlso|As|GetType|In|Is|IsNot|Like|Mod|Or|OrElse|TypeOf|Xor)\b">
118 <token type="OperatorWord"/>
119 </rule>
120 <rule pattern="&amp;=|[*]=|/=|\\=|\^=|\+=|-=|&lt;&lt;=|&gt;&gt;=|&lt;&lt;|&gt;&gt;|:=|&lt;=|&gt;=|&lt;&gt;|[-&amp;*/\\^+=&lt;&gt;\[\]]">
121 <token type="Operator"/>
122 </rule>
123 <rule pattern="&#34;">
124 <token type="LiteralString"/>
125 <push state="string"/>
126 </rule>
127 <rule pattern="_\n">
128 <token type="Text"/>
129 </rule>
130 <rule pattern="[_\w][\w]*">
131 <token type="Name"/>
132 </rule>
133 <rule pattern="#.*?#">
134 <token type="LiteralDate"/>
135 </rule>
136 <rule pattern="(\d+\.\d*|\d*\.\d+)(F[+-]?[0-9]+)?">
137 <token type="LiteralNumberFloat"/>
138 </rule>
139 <rule pattern="\d+([SILDFR]|US|UI|UL)?">
140 <token type="LiteralNumberInteger"/>
141 </rule>
142 <rule pattern="&amp;H[0-9a-f]+([SILDFR]|US|UI|UL)?">
143 <token type="LiteralNumberInteger"/>
144 </rule>
145 <rule pattern="&amp;O[0-7]+([SILDFR]|US|UI|UL)?">
146 <token type="LiteralNumberInteger"/>
147 </rule>
148 </state>
149 <state name="string">
150 <rule pattern="&#34;&#34;">
151 <token type="LiteralString"/>
152 </rule>
153 <rule pattern="&#34;C?">
154 <token type="LiteralString"/>
155 <pop depth="1"/>
156 </rule>
157 <rule pattern="[^&#34;]+">
158 <token type="LiteralString"/>
159 </rule>
160 </state>
161 </rules>
162</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml
new file mode 100644
index 0000000..cd4b9ff
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/verilog.xml
@@ -0,0 +1,158 @@
1<lexer>
2 <config>
3 <name>verilog</name>
4 <alias>verilog</alias>
5 <alias>v</alias>
6 <filename>*.v</filename>
7 <mime_type>text/x-verilog</mime_type>
8 <ensure_nl>true</ensure_nl>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="^\s*`define">
13 <token type="CommentPreproc"/>
14 <push state="macro"/>
15 </rule>
16 <rule pattern="\n">
17 <token type="Text"/>
18 </rule>
19 <rule pattern="\s+">
20 <token type="Text"/>
21 </rule>
22 <rule pattern="\\\n">
23 <token type="Text"/>
24 </rule>
25 <rule pattern="/(\\\n)?/(\n|(.|\n)*?[^\\]\n)">
26 <token type="CommentSingle"/>
27 </rule>
28 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
29 <token type="CommentMultiline"/>
30 </rule>
31 <rule pattern="[{}#@]">
32 <token type="Punctuation"/>
33 </rule>
34 <rule pattern="L?&#34;">
35 <token type="LiteralString"/>
36 <push state="string"/>
37 </rule>
38 <rule pattern="L?&#39;(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\&#39;\n])&#39;">
39 <token type="LiteralStringChar"/>
40 </rule>
41 <rule pattern="(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?">
42 <token type="LiteralNumberFloat"/>
43 </rule>
44 <rule pattern="(\d+\.\d*|\.\d+|\d+[fF])[fF]?">
45 <token type="LiteralNumberFloat"/>
46 </rule>
47 <rule pattern="([0-9]+)|(\&#39;h)[0-9a-fA-F]+">
48 <token type="LiteralNumberHex"/>
49 </rule>
50 <rule pattern="([0-9]+)|(\&#39;b)[01]+">
51 <token type="LiteralNumberBin"/>
52 </rule>
53 <rule pattern="([0-9]+)|(\&#39;d)[0-9]+">
54 <token type="LiteralNumberInteger"/>
55 </rule>
56 <rule pattern="([0-9]+)|(\&#39;o)[0-7]+">
57 <token type="LiteralNumberOct"/>
58 </rule>
59 <rule pattern="\&#39;[01xz]">
60 <token type="LiteralNumber"/>
61 </rule>
62 <rule pattern="\d+[Ll]?">
63 <token type="LiteralNumberInteger"/>
64 </rule>
65 <rule pattern="\*/">
66 <token type="Error"/>
67 </rule>
68 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
69 <token type="Operator"/>
70 </rule>
71 <rule pattern="[()\[\],.;\&#39;]">
72 <token type="Punctuation"/>
73 </rule>
74 <rule pattern="`[a-zA-Z_]\w*">
75 <token type="NameConstant"/>
76 </rule>
77 <rule pattern="^(\s*)(package)(\s+)">
78 <bygroups>
79 <token type="Text"/>
80 <token type="KeywordNamespace"/>
81 <token type="Text"/>
82 </bygroups>
83 </rule>
84 <rule pattern="^(\s*)(import)(\s+)">
85 <bygroups>
86 <token type="Text"/>
87 <token type="KeywordNamespace"/>
88 <token type="Text"/>
89 </bygroups>
90 <push state="import"/>
91 </rule>
92 <rule pattern="(endprimitive|always_latch|macromodule|always_comb|endgenerate|endfunction|endpackage|endspecify|localparam|parameter|primitive|always_ff|automatic|specparam|endmodule|rtranif1|scalared|continue|deassign|endtable|defparam|function|strength|generate|pulldown|vectored|rtranif0|unsigned|specify|endcase|negedge|strong0|disable|default|endtask|posedge|strong1|typedef|tranif1|integer|forever|release|initial|tranif0|highz0|genvar|highz1|pullup|notif0|bufif1|bufif0|repeat|medium|return|struct|assign|signed|module|packed|string|output|notif1|always|final|casex|while|table|const|large|break|begin|input|pull0|pull1|inout|weak1|rcmos|weak0|casez|force|small|rnmos|rpmos|rtran|event|type|void|enum|wait|fork|join|else|edge|pmos|nand|cmos|nmos|task|xnor|case|tran|buf|ref|end|var|and|xor|for|nor|not|do|if|or)\b">
93 <token type="Keyword"/>
94 </rule>
95 <rule pattern="`(autoexpand_vectornets|nounconnected_drive|noexpand_vectornets|noremove_gatenames|unconnected_drive|noremove_netnames|expand_vectornets|remove_gatenames|default_nettype|remove_netnames|endcelldefine|noaccelerate|endprotected|accelerate|celldefine|endprotect|protected|timescale|resetall|protect|include|ifndef|ifdef|endif|elsif|undef|else)\b">
96 <token type="CommentPreproc"/>
97 </rule>
98 <rule pattern="\$(shortrealtobits|bitstoshortreal|printtimescale|showvariables|countdrivers|reset_value|reset_count|getpattern|showscopes|realtobits|bitstoreal|monitoroff|timeformat|sreadmemh|monitoron|sreadmemb|fmonitor|showvars|fdisplay|realtime|readmemb|readmemh|monitor|history|fstrobe|display|restart|incsave|strobe|fwrite|finish|random|fclose|stime|nokey|fopen|floor|nolog|scale|scope|input|reset|write|rtoi|bits|list|stop|itor|time|save|key|log)\b">
99 <token type="NameBuiltin"/>
100 </rule>
101 <rule pattern="(woshortreal|shortint|realtime|longint|integer|supply0|supply1|triand|trireg|uwire|logic|trior|byte|wand|tri0|tri1|time|real|wire|reg|bit|int|tri)\b">
102 <token type="KeywordType"/>
103 </rule>
104 <rule pattern="[a-zA-Z_]\w*:(?!:)">
105 <token type="NameLabel"/>
106 </rule>
107 <rule pattern="\$?[a-zA-Z_]\w*">
108 <token type="Name"/>
109 </rule>
110 </state>
111 <state name="string">
112 <rule pattern="&#34;">
113 <token type="LiteralString"/>
114 <pop depth="1"/>
115 </rule>
116 <rule pattern="\\([\\abfnrtv&#34;\&#39;]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})">
117 <token type="LiteralStringEscape"/>
118 </rule>
119 <rule pattern="[^\\&#34;\n]+">
120 <token type="LiteralString"/>
121 </rule>
122 <rule pattern="\\\n">
123 <token type="LiteralString"/>
124 </rule>
125 <rule pattern="\\">
126 <token type="LiteralString"/>
127 </rule>
128 </state>
129 <state name="macro">
130 <rule pattern="[^/\n]+">
131 <token type="CommentPreproc"/>
132 </rule>
133 <rule pattern="/[*](.|\n)*?[*]/">
134 <token type="CommentMultiline"/>
135 </rule>
136 <rule pattern="//.*?\n">
137 <token type="CommentSingle"/>
138 <pop depth="1"/>
139 </rule>
140 <rule pattern="/">
141 <token type="CommentPreproc"/>
142 </rule>
143 <rule pattern="(?&lt;=\\)\n">
144 <token type="CommentPreproc"/>
145 </rule>
146 <rule pattern="\n">
147 <token type="CommentPreproc"/>
148 <pop depth="1"/>
149 </rule>
150 </state>
151 <state name="import">
152 <rule pattern="[\w:]+\*?">
153 <token type="NameNamespace"/>
154 <pop depth="1"/>
155 </rule>
156 </state>
157 </rules>
158</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml
new file mode 100644
index 0000000..aa42044
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vhdl.xml
@@ -0,0 +1,171 @@
1<lexer>
2 <config>
3 <name>VHDL</name>
4 <alias>vhdl</alias>
5 <filename>*.vhdl</filename>
6 <filename>*.vhd</filename>
7 <mime_type>text/x-vhdl</mime_type>
8 <case_insensitive>true</case_insensitive>
9 </config>
10 <rules>
11 <state name="root">
12 <rule pattern="\n">
13 <token type="Text"/>
14 </rule>
15 <rule pattern="\s+">
16 <token type="Text"/>
17 </rule>
18 <rule pattern="\\\n">
19 <token type="Text"/>
20 </rule>
21 <rule pattern="--.*?$">
22 <token type="CommentSingle"/>
23 </rule>
24 <rule pattern="&#39;(U|X|0|1|Z|W|L|H|-)&#39;">
25 <token type="LiteralStringChar"/>
26 </rule>
27 <rule pattern="[~!%^&amp;*+=|?:&lt;&gt;/-]">
28 <token type="Operator"/>
29 </rule>
30 <rule pattern="&#39;[a-z_]\w*">
31 <token type="NameAttribute"/>
32 </rule>
33 <rule pattern="[()\[\],.;\&#39;]">
34 <token type="Punctuation"/>
35 </rule>
36 <rule pattern="&#34;[^\n\\&#34;]*&#34;">
37 <token type="LiteralString"/>
38 </rule>
39 <rule pattern="(library)(\s+)([a-z_]\w*)">
40 <bygroups>
41 <token type="Keyword"/>
42 <token type="Text"/>
43 <token type="NameNamespace"/>
44 </bygroups>
45 </rule>
46 <rule pattern="(use)(\s+)(entity)">
47 <bygroups>
48 <token type="Keyword"/>
49 <token type="Text"/>
50 <token type="Keyword"/>
51 </bygroups>
52 </rule>
53 <rule pattern="(use)(\s+)([a-z_][\w.]*\.)(all)">
54 <bygroups>
55 <token type="Keyword"/>
56 <token type="Text"/>
57 <token type="NameNamespace"/>
58 <token type="Keyword"/>
59 </bygroups>
60 </rule>
61 <rule pattern="(use)(\s+)([a-z_][\w.]*)">
62 <bygroups>
63 <token type="Keyword"/>
64 <token type="Text"/>
65 <token type="NameNamespace"/>
66 </bygroups>
67 </rule>
68 <rule pattern="(std|ieee)(\.[a-z_]\w*)">
69 <bygroups>
70 <token type="NameNamespace"/>
71 <token type="NameNamespace"/>
72 </bygroups>
73 </rule>
74 <rule pattern="(ieee|work|std)\b">
75 <token type="NameNamespace"/>
76 </rule>
77 <rule pattern="(entity|component)(\s+)([a-z_]\w*)">
78 <bygroups>
79 <token type="Keyword"/>
80 <token type="Text"/>
81 <token type="NameClass"/>
82 </bygroups>
83 </rule>
84 <rule pattern="(architecture|configuration)(\s+)([a-z_]\w*)(\s+)(of)(\s+)([a-z_]\w*)(\s+)(is)">
85 <bygroups>
86 <token type="Keyword"/>
87 <token type="Text"/>
88 <token type="NameClass"/>
89 <token type="Text"/>
90 <token type="Keyword"/>
91 <token type="Text"/>
92 <token type="NameClass"/>
93 <token type="Text"/>
94 <token type="Keyword"/>
95 </bygroups>
96 </rule>
97 <rule pattern="([a-z_]\w*)(:)(\s+)(process|for)">
98 <bygroups>
99 <token type="NameClass"/>
100 <token type="Operator"/>
101 <token type="Text"/>
102 <token type="Keyword"/>
103 </bygroups>
104 </rule>
105 <rule pattern="(end)(\s+)">
106 <bygroups>
107 <token type="Keyword"/>
108 <token type="Text"/>
109 </bygroups>
110 <push state="endblock"/>
111 </rule>
112 <rule>
113 <include state="types"/>
114 </rule>
115 <rule>
116 <include state="keywords"/>
117 </rule>
118 <rule>
119 <include state="numbers"/>
120 </rule>
121 <rule pattern="[a-z_]\w*">
122 <token type="Name"/>
123 </rule>
124 </state>
125 <state name="endblock">
126 <rule>
127 <include state="keywords"/>
128 </rule>
129 <rule pattern="[a-z_]\w*">
130 <token type="NameClass"/>
131 </rule>
132 <rule pattern="(\s+)">
133 <token type="Text"/>
134 </rule>
135 <rule pattern=";">
136 <token type="Punctuation"/>
137 <pop depth="1"/>
138 </rule>
139 </state>
140 <state name="types">
141 <rule pattern="(std_ulogic_vector|file_open_status|std_logic_vector|severity_level|file_open_kind|delay_length|std_ulogic|bit_vector|character|std_logic|positive|unsigned|boolean|natural|integer|signed|string|time|bit)\b">
142 <token type="KeywordType"/>
143 </rule>
144 </state>
145 <state name="keywords">
146 <rule pattern="(configuration|architecture|disconnect|attribute|transport|postponed|procedure|component|function|variable|severity|constant|generate|register|inertial|package|library|guarded|linkage|generic|subtype|process|literal|record|entity|others|shared|signal|downto|access|assert|return|reject|buffer|impure|select|elsif|inout|until|label|range|group|units|begin|array|alias|after|block|while|null|next|file|when|wait|open|nand|exit|then|case|port|type|loop|else|pure|with|xnor|body|not|rem|bus|rol|ror|xor|abs|end|and|sla|sll|sra|srl|all|out|nor|mod|map|for|new|use|or|on|of|in|if|is|to)\b">
147 <token type="Keyword"/>
148 </rule>
149 </state>
150 <state name="numbers">
151 <rule pattern="\d{1,2}#[0-9a-f_]+#?">
152 <token type="LiteralNumberInteger"/>
153 </rule>
154 <rule pattern="\d+">
155 <token type="LiteralNumberInteger"/>
156 </rule>
157 <rule pattern="(\d+\.\d*|\.\d+|\d+)E[+-]?\d+">
158 <token type="LiteralNumberFloat"/>
159 </rule>
160 <rule pattern="X&#34;[0-9a-f_]+&#34;">
161 <token type="LiteralNumberHex"/>
162 </rule>
163 <rule pattern="O&#34;[0-7_]+&#34;">
164 <token type="LiteralNumberOct"/>
165 </rule>
166 <rule pattern="B&#34;[01_]+&#34;">
167 <token type="LiteralNumberBin"/>
168 </rule>
169 </state>
170 </rules>
171</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml
new file mode 100644
index 0000000..7518020
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml
@@ -0,0 +1,305 @@
1<lexer>
2 <config>
3 <name>vue</name>
4 <alias>vue</alias>
5 <alias>vuejs</alias>
6 <filename>*.vue</filename>
7 <mime_type>text/x-vue</mime_type>
8 <mime_type>application/x-vue</mime_type>
9 <dot_all>true</dot_all>
10 </config>
11 <rules>
12 <state name="interp-inside">
13 <rule pattern="\}">
14 <token type="LiteralStringInterpol"/>
15 <pop depth="1"/>
16 </rule>
17 <rule>
18 <include state="root"/>
19 </rule>
20 </state>
21 <state name="attr">
22 <rule pattern="{">
23 <token type="Punctuation"/>
24 <push state="expression"/>
25 </rule>
26 <rule pattern="&#34;.*?&#34;">
27 <token type="LiteralString"/>
28 <pop depth="1"/>
29 </rule>
30 <rule pattern="&#39;.*?&#39;">
31 <token type="LiteralString"/>
32 <pop depth="1"/>
33 </rule>
34 <rule>
35 <pop depth="1"/>
36 </rule>
37 </state>
38 <state name="interp">
39 <rule pattern="`">
40 <token type="LiteralStringBacktick"/>
41 <pop depth="1"/>
42 </rule>
43 <rule pattern="\\\\">
44 <token type="LiteralStringBacktick"/>
45 </rule>
46 <rule pattern="\\`">
47 <token type="LiteralStringBacktick"/>
48 </rule>
49 <rule pattern="\$\{">
50 <token type="LiteralStringInterpol"/>
51 <push state="interp-inside"/>
52 </rule>
53 <rule pattern="\$">
54 <token type="LiteralStringBacktick"/>
55 </rule>
56 <rule pattern="[^`\\$]+">
57 <token type="LiteralStringBacktick"/>
58 </rule>
59 </state>
60 <state name="tag">
61 <rule pattern="\s+">
62 <token type="Text"/>
63 </rule>
64 <rule pattern="(-)([\w]+)">
65 <token type="NameTag"/>
66 </rule>
67 <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
68 <bygroups>
69 <token type="NameTag"/>
70 <token type="LiteralString"/>
71 <token type="Punctuation"/>
72 </bygroups>
73 </rule>
74 <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)">
75 <bygroups>
76 <token type="NameTag"/>
77 <token type="LiteralString"/>
78 </bygroups>
79 </rule>
80 <rule pattern="(@[\S]+)(=&#34;[\S]+&#34;)">
81 <bygroups>
82 <token type="NameTag"/>
83 <token type="LiteralString"/>
84 </bygroups>
85 </rule>
86 <rule pattern="(:[\S]+)(=&#34;[\S]+&#34;)">
87 <bygroups>
88 <token type="NameTag"/>
89 <token type="LiteralString"/>
90 </bygroups>
91 </rule>
92 <rule pattern="(:)">
93 <token type="Operator"/>
94 </rule>
95 <rule pattern="(v-b-[\S]+)">
96 <token type="NameTag"/>
97 </rule>
98 <rule pattern="(v-[\w]+)(=&#34;.+)([:][\w]+)(=&#34;[\w]+&#34;)(&gt;)">
99 <bygroups>
100 <token type="NameTag"/>
101 <token type="LiteralString"/>
102 <token type="NameTag"/>
103 <token type="LiteralString"/>
104 <token type="Punctuation"/>
105 </bygroups>
106 </rule>
107 <rule pattern="(v-[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
108 <bygroups>
109 <token type="NameTag"/>
110 <token type="LiteralString"/>
111 <token type="Punctuation"/>
112 </bygroups>
113 </rule>
114 <rule pattern="(v-[\w]+)(&gt;)">
115 <bygroups>
116 <token type="NameTag"/>
117 <token type="Punctuation"/>
118 </bygroups>
119 </rule>
120 <rule pattern="(v-[\w]+)(=&#34;.+&#34;)(&gt;)">
121 <bygroups>
122 <token type="NameTag"/>
123 <token type="LiteralString"/>
124 <token type="Punctuation"/>
125 </bygroups>
126 </rule>
127 <rule pattern="(&lt;)([\w]+)">
128 <bygroups>
129 <token type="Punctuation"/>
130 <token type="NameTag"/>
131 </bygroups>
132 </rule>
133 <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
134 <bygroups>
135 <token type="Punctuation"/>
136 <token type="Punctuation"/>
137 <token type="NameTag"/>
138 <token type="Punctuation"/>
139 </bygroups>
140 </rule>
141 <rule pattern="([\w]+\s*)(=)(\s*)">
142 <bygroups>
143 <token type="NameAttribute"/>
144 <token type="Operator"/>
145 <token type="Text"/>
146 </bygroups>
147 <push state="attr"/>
148 </rule>
149 <rule pattern="[{}]+">
150 <token type="Punctuation"/>
151 </rule>
152 <rule pattern="[\w\.]+">
153 <token type="NameAttribute"/>
154 </rule>
155 <rule pattern="(/?)(\s*)(&gt;)">
156 <bygroups>
157 <token type="Punctuation"/>
158 <token type="Text"/>
159 <token type="Punctuation"/>
160 </bygroups>
161 <pop depth="1"/>
162 </rule>
163 </state>
164 <state name="slashstartsregex">
165 <rule>
166 <include state="commentsandwhitespace"/>
167 </rule>
168 <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
169 <token type="LiteralStringRegex"/>
170 <pop depth="1"/>
171 </rule>
172 <rule pattern="(?=/)">
173 <token type="Text"/>
174 <push state="#pop" state="badregex"/>
175 </rule>
176 <rule>
177 <pop depth="1"/>
178 </rule>
179 </state>
180 <state name="root">
181 <rule>
182 <include state="vue"/>
183 </rule>
184 <rule pattern="\A#! ?/.*?\n">
185 <token type="CommentHashbang"/>
186 </rule>
187 <rule pattern="^(?=\s|/|&lt;!--)">
188 <token type="Text"/>
189 <push state="slashstartsregex"/>
190 </rule>
191 <rule>
192 <include state="commentsandwhitespace"/>
193 </rule>
194 <rule pattern="(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?">
195 <token type="LiteralNumberFloat"/>
196 </rule>
197 <rule pattern="0[bB][01]+">
198 <token type="LiteralNumberBin"/>
199 </rule>
200 <rule pattern="0[oO][0-7]+">
201 <token type="LiteralNumberOct"/>
202 </rule>
203 <rule pattern="0[xX][0-9a-fA-F]+">
204 <token type="LiteralNumberHex"/>
205 </rule>
206 <rule pattern="[0-9]+">
207 <token type="LiteralNumberInteger"/>
208 </rule>
209 <rule pattern="\.\.\.|=&gt;">
210 <token type="Punctuation"/>
211 </rule>
212 <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
213 <token type="Operator"/>
214 <push state="slashstartsregex"/>
215 </rule>
216 <rule pattern="[{(\[;,]">
217 <token type="Punctuation"/>
218 <push state="slashstartsregex"/>
219 </rule>
220 <rule pattern="[})\].]">
221 <token type="Punctuation"/>
222 </rule>
223 <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
224 <token type="Keyword"/>
225 <push state="slashstartsregex"/>
226 </rule>
227 <rule pattern="(var|let|with|function)\b">
228 <token type="KeywordDeclaration"/>
229 <push state="slashstartsregex"/>
230 </rule>
231 <rule pattern="(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">
232 <token type="KeywordReserved"/>
233 </rule>
234 <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
235 <token type="KeywordConstant"/>
236 </rule>
237 <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
238 <token type="NameBuiltin"/>
239 </rule>
240 <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
241 <token type="NameOther"/>
242 </rule>
243 <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
244 <token type="LiteralStringDouble"/>
245 </rule>
246 <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
247 <token type="LiteralStringSingle"/>
248 </rule>
249 <rule pattern="`">
250 <token type="LiteralStringBacktick"/>
251 <push state="interp"/>
252 </rule>
253 </state>
254 <state name="badregex">
255 <rule pattern="\n">
256 <token type="Text"/>
257 <pop depth="1"/>
258 </rule>
259 </state>
260 <state name="vue">
261 <rule pattern="(&lt;)([\w]+)">
262 <bygroups>
263 <token type="Punctuation"/>
264 <token type="NameTag"/>
265 </bygroups>
266 <push state="tag"/>
267 </rule>
268 <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
269 <bygroups>
270 <token type="Punctuation"/>
271 <token type="Punctuation"/>
272 <token type="NameTag"/>
273 <token type="Punctuation"/>
274 </bygroups>
275 </rule>
276 </state>
277 <state name="expression">
278 <rule pattern="{">
279 <token type="Punctuation"/>
280 <push/>
281 </rule>
282 <rule pattern="}">
283 <token type="Punctuation"/>
284 <pop depth="1"/>
285 </rule>
286 <rule>
287 <include state="root"/>
288 </rule>
289 </state>
290 <state name="commentsandwhitespace">
291 <rule pattern="\s+">
292 <token type="Text"/>
293 </rule>
294 <rule pattern="&lt;!--">
295 <token type="Comment"/>
296 </rule>
297 <rule pattern="//.*?\n">
298 <token type="CommentSingle"/>
299 </rule>
300 <rule pattern="/\*.*?\*/">
301 <token type="CommentMultiline"/>
302 </rule>
303 </state>
304 </rules>
305</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml
new file mode 100644
index 0000000..c663ee2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/wdte.xml
@@ -0,0 +1,43 @@
1<lexer>
2 <config>
3 <name>WDTE</name>
4 <filename>*.wdte</filename>
5 </config>
6 <rules>
7 <state name="root">
8 <rule pattern="\n">
9 <token type="Text"/>
10 </rule>
11 <rule pattern="\s+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="\\\n">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="#(.*?)\n">
18 <token type="CommentSingle"/>
19 </rule>
20 <rule pattern="-?[0-9]+">
21 <token type="LiteralNumberInteger"/>
22 </rule>
23 <rule pattern="-?[0-9]*\.[0-9]+">
24 <token type="LiteralNumberFloat"/>
25 </rule>
26 <rule pattern="&#34;[^&#34;]*&#34;">
27 <token type="LiteralString"/>
28 </rule>
29 <rule pattern="&#39;[^&#39;]*&#39;">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="(default|switch|memo)\b">
33 <token type="KeywordReserved"/>
34 </rule>
35 <rule pattern="{|}|;|-&gt;|=&gt;|\(|\)|\[|\]|\.">
36 <token type="Operator"/>
37 </rule>
38 <rule pattern="[^{};()[\].\s]+">
39 <token type="NameVariable"/>
40 </rule>
41 </state>
42 </rules>
43</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml
new file mode 100644
index 0000000..1762c96
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/whiley.xml
@@ -0,0 +1,57 @@
1<lexer>
2 <config>
3 <name>Whiley</name>
4 <alias>whiley</alias>
5 <filename>*.whiley</filename>
6 <mime_type>text/x-whiley</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\n">
11 <token type="Text"/>
12 </rule>
13 <rule pattern="\s+">
14 <token type="Text"/>
15 </rule>
16 <rule pattern="\\\n">
17 <token type="Text"/>
18 </rule>
19 <rule pattern="/[*](.|\n)*?[*]/">
20 <token type="CommentMultiline"/>
21 </rule>
22 <rule pattern="//.*?\n">
23 <token type="CommentSingle"/>
24 </rule>
25 <rule pattern="(function|import|from|method|property|type|with|variant)\b">
26 <token type="KeywordDeclaration"/>
27 </rule>
28 <rule pattern="(assert|assume|all|break|case|continue|debug|default|do|else|ensures|export|fail|final|for|if|in|is|native|no|new|private|protected|public|return|requires|skip|some|switch|unsafe|where|while)\b">
29 <token type="Keyword"/>
30 </rule>
31 <rule pattern="(true|false|null)\b">
32 <token type="KeywordConstant"/>
33 </rule>
34 <rule pattern="(bool|byte|int|void)\b">
35 <token type="KeywordType"/>
36 </rule>
37 <rule pattern="0b(?:_?[01])+">
38 <token type="LiteralNumberBin"/>
39 </rule>
40 <rule pattern="0[xX][0-9a-fA-F]+">
41 <token type="LiteralNumberHex"/>
42 </rule>
43 <rule pattern="(0|[1-9][0-9]*)">
44 <token type="LiteralNumberInteger"/>
45 </rule>
46 <rule pattern="[a-zA-Z_]\w*">
47 <token type="Name"/>
48 </rule>
49 <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
50 <token type="Operator"/>
51 </rule>
52 <rule pattern="[{}()\[\],.;\|]">
53 <token type="Punctuation"/>
54 </rule>
55 </state>
56 </rules>
57</lexer>
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml
new file mode 100644
index 0000000..2c6a4d9
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xml.xml
@@ -0,0 +1,95 @@
1<lexer>
2 <config>
3 <name>XML</name>
4 <alias>xml</alias>
5 <filename>*.xml</filename>
6 <filename>*.xsl</filename>
7 <filename>*.rss</filename>
8 <filename>*.xslt</filename>
9 <filename>*.xsd</filename>
10 <filename>*.wsdl</filename>
11 <filename>*.wsf</filename>
12 <filename>*.svg</filename>
13 <filename>*.csproj</filename>
14 <filename>*.vcxproj</filename>
15 <filename>*.fsproj</filename>
16 <mime_type>text/xml</mime_type>
17 <mime_type>application/xml</mime_type>
18 <mime_type>image/svg+xml</mime_type>
19 <mime_type>application/rss+xml</mime_type>
20 <mime_type>application/atom+xml</mime_type>
21 <dot_all>true</dot_all>
22 </config>
23 <rules>
24 <state name="root">
25 <rule pattern="[^&lt;&amp;]+">
26 <token type="Text"/>
27 </rule>
28 <rule pattern="&amp;\S*?;">
29 <token type="NameEntity"/>
30 </rule>
31 <rule pattern="\&lt;\!\[CDATA\[.*?\]\]\&gt;">
32 <token type="CommentPreproc"/>
33 </rule>
34 <rule pattern="&lt;!--">
35 <token type="Comment"/>
36 <push state="comment"/>
37 </rule>
38 <rule pattern="&lt;\?.*?\?&gt;">
39 <token type="CommentPreproc"/>
40 </rule>
41 <rule pattern="&lt;![^&gt;]*&gt;">
42 <token type="CommentPreproc"/>
43 </rule>
44 <rule pattern="&lt;\s*[\w:.-]+">
45 <token type="NameTag"/>
46 <push state="tag"/>
47 </rule>
48 <rule pattern="&lt;\s*/\s*[\w:.-]+\s*&gt;">
49 <token type="NameTag"/>
50 </rule>
51 </state>
52 <state name="comment">
53 <rule pattern="[^-]+">
54 <token type="Comment"/>
55 </rule>
56 <rule pattern="--&gt;">
57 <token type="Comment"/>
58 <pop depth="1"/>
59 </rule>
60 <rule pattern="-">
61 <token type="Comment"/>
62 </rule>
63 </state>
64 <state name="tag">
65 <rule pattern="\s+">
66 <token type="Text"/>
67 </rule>
68 <rule pattern="[\w.:-]+\s*=">
69 <token type="NameAttribute"/>
70 <push state="attr"/>
71 </rule>
72 <rule pattern="/?\s*&gt;">
73 <token type="NameTag"/>
74 <pop depth="1"/>
75 </rule>
76 </state>
77 <state name="attr">
78 <rule pattern="\s+">
79 <token type="Text"/>
80 </rule>
81 <rule pattern="&#34;.*?&#34;">
82 <token type="LiteralString"/>
83 <pop depth="1"/>
84 </rule>
85 <rule pattern="&#39;.*?&#39;">
86 <token type="LiteralString"/>
87 <pop depth="1"/>
88 </rule>
89 <rule pattern="[^\s&gt;]+">
90 <token type="LiteralString"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 </rules>
95</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml
new file mode 100644
index 0000000..53bf432
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/xorg.xml
@@ -0,0 +1,35 @@
1<lexer>
2 <config>
3 <name>Xorg</name>
4 <alias>xorg.conf</alias>
5 <filename>xorg.conf</filename>
6 </config>
7 <rules>
8 <state name="root">
9 <rule pattern="\s+">
10 <token type="TextWhitespace"/>
11 </rule>
12 <rule pattern="#.*$">
13 <token type="Comment"/>
14 </rule>
15 <rule pattern="((|Sub)Section)(\s+)(&#34;\w+&#34;)">
16 <bygroups>
17 <token type="KeywordNamespace"/>
18 <token type="LiteralStringEscape"/>
19 <token type="TextWhitespace"/>
20 <token type="LiteralStringEscape"/>
21 </bygroups>
22 </rule>
23 <rule pattern="(End(|Sub)Section)">
24 <token type="KeywordNamespace"/>
25 </rule>
26 <rule pattern="(\w+)(\s+)([^\n#]+)">
27 <bygroups>
28 <token type="NameKeyword"/>
29 <token type="TextWhitespace"/>
30 <token type="LiteralString"/>
31 </bygroups>
32 </rule>
33 </state>
34 </rules>
35</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml
new file mode 100644
index 0000000..baa7bd5
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yaml.xml
@@ -0,0 +1,122 @@
1<lexer>
2 <config>
3 <name>YAML</name>
4 <alias>yaml</alias>
5 <filename>*.yaml</filename>
6 <filename>*.yml</filename>
7 <mime_type>text/x-yaml</mime_type>
8 </config>
9 <rules>
10 <state name="root">
11 <rule>
12 <include state="whitespace"/>
13 </rule>
14 <rule pattern="^---">
15 <token type="NameNamespace"/>
16 </rule>
17 <rule pattern="^\.\.\.">
18 <token type="NameNamespace"/>
19 </rule>
20 <rule pattern="[\n?]?\s*- ">
21 <token type="Text"/>
22 </rule>
23 <rule pattern="#.*$">
24 <token type="Comment"/>
25 </rule>
26 <rule pattern="!![^\s]+">
27 <token type="CommentPreproc"/>
28 </rule>
29 <rule pattern="&amp;[^\s]+">
30 <token type="CommentPreproc"/>
31 </rule>
32 <rule pattern="\*[^\s]+">
33 <token type="CommentPreproc"/>
34 </rule>
35 <rule pattern="^%include\s+[^\n\r]+">
36 <token type="CommentPreproc"/>
37 </rule>
38 <rule>
39 <include state="key"/>
40 </rule>
41 <rule>
42 <include state="value"/>
43 </rule>
44 <rule pattern="[?:,\[\]]">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern=".">
48 <token type="Text"/>
49 </rule>
50 </state>
51 <state name="value">
52 <rule pattern="([&gt;|](?:[+-])?)(\n(^ {1,})(?:.*\n*(?:^\3 *).*)*)">
53 <bygroups>
54 <token type="Punctuation"/>
55 <token type="LiteralStringDoc"/>
56 <token type="TextWhitespace"/>
57 </bygroups>
58 </rule>
59 <rule pattern="(false|False|FALSE|true|True|TRUE|null|Off|off|yes|Yes|YES|OFF|On|ON|no|No|on|NO|n|N|Y|y)\b">
60 <token type="KeywordConstant"/>
61 </rule>
62 <rule pattern="&#34;(?:\\.|[^&#34;])*&#34;">
63 <token type="LiteralStringDouble"/>
64 </rule>
65 <rule pattern="&#39;(?:\\.|[^&#39;])*&#39;">
66 <token type="LiteralStringSingle"/>
67 </rule>
68 <rule pattern="\d\d\d\d-\d\d-\d\d([T ]\d\d:\d\d:\d\d(\.\d+)?(Z|\s+[-+]\d+)?)?">
69 <token type="LiteralDate"/>
70 </rule>
71 <rule pattern="\b[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)\b">
72 <token type="LiteralNumber"/>
73 </rule>
74 <rule pattern="([^\{\}\[\]\?,\:\!\-\*&amp;\@].*)( )+(#.*)">
75 <bygroups>
76 <token type="Literal"/>
77 <token type="TextWhitespace"/>
78 <token type="Comment"/>
79 </bygroups>
80 </rule>
81 <rule pattern="[^\{\}\[\]\?,\:\!\-\*&amp;\@].*">
82 <token type="Literal"/>
83 </rule>
84 </state>
85 <state name="key">
86 <rule pattern="&#34;[^&#34;\n].*&#34;: ">
87 <token type="NameTag"/>
88 </rule>
89 <rule pattern="(-)( )([^&#34;\n{]*)(:)( )">
90 <bygroups>
91 <token type="Punctuation"/>
92 <token type="TextWhitespace"/>
93 <token type="NameTag"/>
94 <token type="Punctuation"/>
95 <token type="TextWhitespace"/>
96 </bygroups>
97 </rule>
98 <rule pattern="([^&#34;\n{]*)(:)( )">
99 <bygroups>
100 <token type="NameTag"/>
101 <token type="Punctuation"/>
102 <token type="TextWhitespace"/>
103 </bygroups>
104 </rule>
105 <rule pattern="([^&#34;\n{]*)(:)(\n)">
106 <bygroups>
107 <token type="NameTag"/>
108 <token type="Punctuation"/>
109 <token type="TextWhitespace"/>
110 </bygroups>
111 </rule>
112 </state>
113 <state name="whitespace">
114 <rule pattern="\s+">
115 <token type="TextWhitespace"/>
116 </rule>
117 <rule pattern="\n+">
118 <token type="TextWhitespace"/>
119 </rule>
120 </state>
121 </rules>
122</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml
new file mode 100644
index 0000000..f3da7ce
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/yang.xml
@@ -0,0 +1,99 @@
1<lexer>
2 <config>
3 <name>YANG</name>
4 <alias>yang</alias>
5 <filename>*.yang</filename>
6 <mime_type>application/yang</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\s+">
11 <token type="TextWhitespace"/>
12 </rule>
13 <rule pattern="[\{\}\;]+">
14 <token type="Punctuation"/>
15 </rule>
16 <rule pattern="(?&lt;![\-\w])(and|or|not|\+|\.)(?![\-\w])">
17 <token type="Operator"/>
18 </rule>
19 <rule pattern="&#34;(?:\\&#34;|[^&#34;])*?&#34;">
20 <token type="LiteralStringDouble"/>
21 </rule>
22 <rule pattern="&#39;(?:\\&#39;|[^&#39;])*?&#39;">
23 <token type="LiteralStringSingle"/>
24 </rule>
25 <rule pattern="/\*">
26 <token type="CommentMultiline"/>
27 <push state="comments"/>
28 </rule>
29 <rule pattern="//.*?$">
30 <token type="CommentSingle"/>
31 </rule>
32 <rule pattern="(?:^|(?&lt;=[\s{};]))([\w.-]+)(:)([\w.-]+)(?=[\s{};])">
33 <bygroups>
34 <token type="KeywordNamespace"/>
35 <token type="Punctuation"/>
36 <token type="Text"/>
37 </bygroups>
38 </rule>
39 <rule pattern="([0-9]{4}\-[0-9]{2}\-[0-9]{2})(?=[\s\{\}\;])">
40 <token type="LiteralDate"/>
41 </rule>
42 <rule pattern="([0-9]+\.[0-9]+)(?=[\s\{\}\;])">
43 <token type="LiteralNumberFloat"/>
44 </rule>
45 <rule pattern="([0-9]+)(?=[\s\{\}\;])">
46 <token type="LiteralNumberInteger"/>
47 </rule>
48 <rule pattern="(submodule|module)(?=[^\w\-\:])">
49 <token type="Keyword"/>
50 </rule>
51 <rule pattern="(yang-version|belongs-to|namespace|prefix)(?=[^\w\-\:])">
52 <token type="Keyword"/>
53 </rule>
54 <rule pattern="(organization|description|reference|revision|contact)(?=[^\w\-\:])">
55 <token type="Keyword"/>
56 </rule>
57 <rule pattern="(revision-date|include|import)(?=[^\w\-\:])">
58 <token type="Keyword"/>
59 </rule>
60 <rule pattern="(notification|if-feature|deviation|extension|identity|argument|grouping|typedef|feature|augment|output|action|input|rpc)(?=[^\w\-\:])">
61 <token type="Keyword"/>
62 </rule>
63 <rule pattern="(leaf-list|container|presence|anydata|deviate|choice|config|anyxml|refine|leaf|must|list|case|uses|when)(?=[^\w\-\:])">
64 <token type="Keyword"/>
65 </rule>
66 <rule pattern="(require-instance|fraction-digits|error-app-tag|error-message|min-elements|max-elements|yin-element|ordered-by|position|modifier|default|pattern|length|status|units|value|range|type|path|enum|base|bit)(?=[^\w\-\:])">
67 <token type="Keyword"/>
68 </rule>
69 <rule pattern="(mandatory|unique|key)(?=[^\w\-\:])">
70 <token type="Keyword"/>
71 </rule>
72 <rule pattern="(not-supported|invert-match|deprecated|unbounded|obsolete|current|replace|delete|false|true|user|min|max|add)(?=[^\w\-\:])">
73 <token type="NameClass"/>
74 </rule>
75 <rule pattern="(instance-identifier|identityref|enumeration|decimal64|boolean|leafref|uint64|uint32|string|binary|uint16|int32|int64|int16|empty|uint8|union|int8|bits)(?=[^\w\-\:])">
76 <token type="NameClass"/>
77 </rule>
78 <rule pattern="[^;{}\s\&#39;\&#34;]+">
79 <token type="Text"/>
80 </rule>
81 </state>
82 <state name="comments">
83 <rule pattern="[^*/]">
84 <token type="CommentMultiline"/>
85 </rule>
86 <rule pattern="/\*">
87 <token type="CommentMultiline"/>
88 <push state="comment"/>
89 </rule>
90 <rule pattern="\*/">
91 <token type="CommentMultiline"/>
92 <pop depth="1"/>
93 </rule>
94 <rule pattern="[*/]">
95 <token type="CommentMultiline"/>
96 </rule>
97 </state>
98 </rules>
99</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml
new file mode 100644
index 0000000..929f495
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zed.xml
@@ -0,0 +1,51 @@
1<lexer>
2 <config>
3 <name>Zed</name>
4 <alias>zed</alias>
5 <filename>*.zed</filename>
6 <mime_type>text/zed</mime_type>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="\n">
11 <token type="TextWhitespace"/>
12 </rule>
13 <rule pattern="\s+">
14 <token type="TextWhitespace"/>
15 </rule>
16 <rule pattern="//.*?\n">
17 <token type="CommentSingle"/>
18 </rule>
19 <rule pattern="/(\\\n)?[*][\w\W]*?[*](\\\n)?/">
20 <token type="CommentMultiline"/>
21 </rule>
22 <rule pattern="/(\\\n)?[*][\w\W]*">
23 <token type="CommentMultiline"/>
24 </rule>
25 <rule pattern="(definition)\b">
26 <token type="KeywordType"/>
27 </rule>
28 <rule pattern="(relation)\b">
29 <token type="KeywordNamespace"/>
30 </rule>
31 <rule pattern="(permission)\b">
32 <token type="KeywordDeclaration"/>
33 </rule>
34 <rule pattern="[a-zA-Z_]\w*/">
35 <token type="NameNamespace"/>
36 </rule>
37 <rule pattern="[a-zA-Z_]\w*">
38 <token type="Name"/>
39 </rule>
40 <rule pattern="#[a-zA-Z_]\w*">
41 <token type="NameVariable"/>
42 </rule>
43 <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
44 <token type="Operator"/>
45 </rule>
46 <rule pattern="[{}()\[\],.;]">
47 <token type="Punctuation"/>
48 </rule>
49 </state>
50 </rules>
51</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml
new file mode 100644
index 0000000..fb51cc1
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/zig.xml
@@ -0,0 +1,112 @@
1<lexer>
2 <config>
3 <name>Zig</name>
4 <alias>zig</alias>
5 <filename>*.zig</filename>
6 <mime_type>text/zig</mime_type>
7 </config>
8 <rules>
9 <state name="string">
10 <rule pattern="\\(x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\&#39;&#34;])">
11 <token type="LiteralStringEscape"/>
12 </rule>
13 <rule pattern="[^\\&#34;\n]+">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="&#34;">
17 <token type="LiteralString"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="\n">
23 <token type="TextWhitespace"/>
24 </rule>
25 <rule pattern="\s+">
26 <token type="TextWhitespace"/>
27 </rule>
28 <rule pattern="//.*?\n">
29 <token type="CommentSingle"/>
30 </rule>
31 <rule pattern="(unreachable|continue|errdefer|suspend|return|resume|cancel|break|catch|async|await|defer|asm|try)\b">
32 <token type="Keyword"/>
33 </rule>
34 <rule pattern="(threadlocal|linksection|allowzero|stdcallcc|volatile|comptime|noalias|nakedcc|inline|export|packed|extern|align|const|pub|var)\b">
35 <token type="KeywordReserved"/>
36 </rule>
37 <rule pattern="(struct|union|error|enum)\b">
38 <token type="Keyword"/>
39 </rule>
40 <rule pattern="(while|for)\b">
41 <token type="Keyword"/>
42 </rule>
43 <rule pattern="(comptime_float|comptime_int|c_longdouble|c_ulonglong|c_longlong|c_voidi8|noreturn|c_ushort|anyerror|promise|c_short|c_ulong|c_uint|c_long|isize|c_int|usize|void|f128|i128|type|bool|u128|u16|f64|f32|u64|i16|f16|i32|u32|i64|u8|i0|u0)\b">
44 <token type="KeywordType"/>
45 </rule>
46 <rule pattern="(undefined|false|true|null)\b">
47 <token type="KeywordConstant"/>
48 </rule>
49 <rule pattern="(switch|orelse|else|and|if|or)\b">
50 <token type="Keyword"/>
51 </rule>
52 <rule pattern="(usingnamespace|test|fn)\b">
53 <token type="Keyword"/>
54 </rule>
55 <rule pattern="0x[0-9a-fA-F]+\.[0-9a-fA-F]+([pP][\-+]?[0-9a-fA-F]+)?">
56 <token type="LiteralNumberFloat"/>
57 </rule>
58 <rule pattern="0x[0-9a-fA-F]+\.?[pP][\-+]?[0-9a-fA-F]+">
59 <token type="LiteralNumberFloat"/>
60 </rule>
61 <rule pattern="[0-9]+\.[0-9]+([eE][-+]?[0-9]+)?">
62 <token type="LiteralNumberFloat"/>
63 </rule>
64 <rule pattern="[0-9]+\.?[eE][-+]?[0-9]+">
65 <token type="LiteralNumberFloat"/>
66 </rule>
67 <rule pattern="0b(?:_?[01])+">
68 <token type="LiteralNumberBin"/>
69 </rule>
70 <rule pattern="0o(?:_?[0-7])+">
71 <token type="LiteralNumberOct"/>
72 </rule>
73 <rule pattern="0x(?:_?[0-9a-fA-F])+">
74 <token type="LiteralNumberHex"/>
75 </rule>
76 <rule pattern="(?:_?[0-9])+">
77 <token type="LiteralNumberInteger"/>
78 </rule>
79 <rule pattern="@[a-zA-Z_]\w*">
80 <token type="NameBuiltin"/>
81 </rule>
82 <rule pattern="[a-zA-Z_]\w*">
83 <token type="Name"/>
84 </rule>
85 <rule pattern="\&#39;\\\&#39;\&#39;">
86 <token type="LiteralStringEscape"/>
87 </rule>
88 <rule pattern="\&#39;\\(|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{6}|[nr\\t\&#39;&#34;])\&#39;">
89 <token type="LiteralStringEscape"/>
90 </rule>
91 <rule pattern="\&#39;[^\\\&#39;]\&#39;">
92 <token type="LiteralString"/>
93 </rule>
94 <rule pattern="\\\\[^\n]*">
95 <token type="LiteralStringHeredoc"/>
96 </rule>
97 <rule pattern="c\\\\[^\n]*">
98 <token type="LiteralStringHeredoc"/>
99 </rule>
100 <rule pattern="c?&#34;">
101 <token type="LiteralString"/>
102 <push state="string"/>
103 </rule>
104 <rule pattern="[+%=&gt;&lt;|^!?/\-*&amp;~:]">
105 <token type="Operator"/>
106 </rule>
107 <rule pattern="[{}()\[\],.;]">
108 <token type="Punctuation"/>
109 </rule>
110 </state>
111 </rules>
112</lexer> \ No newline at end of file
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go b/vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go
new file mode 100644
index 0000000..d93ac1e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/fortran_fixed.go
@@ -0,0 +1,38 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// FortranFixed lexer.
8var FortranFixed = Register(MustNewLexer(
9 &Config{
10 Name: "FortranFixed",
11 Aliases: []string{"fortranfixed"},
12 Filenames: []string{"*.f", "*.F"},
13 MimeTypes: []string{"text/x-fortran"},
14 NotMultiline: true,
15 CaseInsensitive: true,
16 },
17 func() Rules {
18 return Rules{
19 "root": {
20 {`[C*].*\n`, Comment, nil},
21 {`#.*\n`, CommentPreproc, nil},
22 {`[\t ]*!.*\n`, Comment, nil},
23 {`(.{5})`, NameLabel, Push("cont-char")},
24 {`.*\n`, Using("Fortran"), nil},
25 },
26 "cont-char": {
27 {` `, Text, Push("code")},
28 {`0`, Comment, Push("code")},
29 {`.`, GenericStrong, Push("code")},
30 },
31 "code": {
32 {`(.{66})(.*)(\n)`, ByGroups(Using("Fortran"), Comment, Text), Push("root")},
33 {`.*\n`, Using("Fortran"), Push("root")},
34 Default(Push("root")),
35 },
36 }
37 },
38))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go b/vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go
new file mode 100644
index 0000000..7f396f4
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/genshi.go
@@ -0,0 +1,118 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Genshi Text lexer.
8var GenshiText = Register(MustNewLexer(
9 &Config{
10 Name: "Genshi Text",
11 Aliases: []string{"genshitext"},
12 Filenames: []string{},
13 MimeTypes: []string{"application/x-genshi-text", "text/x-genshi"},
14 },
15 genshiTextRules,
16))
17
18func genshiTextRules() Rules {
19 return Rules{
20 "root": {
21 {`[^#$\s]+`, Other, nil},
22 {`^(\s*)(##.*)$`, ByGroups(Text, Comment), nil},
23 {`^(\s*)(#)`, ByGroups(Text, CommentPreproc), Push("directive")},
24 Include("variable"),
25 {`[#$\s]`, Other, nil},
26 },
27 "directive": {
28 {`\n`, Text, Pop(1)},
29 {`(?:def|for|if)\s+.*`, Using("Python"), Pop(1)},
30 {`(choose|when|with)([^\S\n]+)(.*)`, ByGroups(Keyword, Text, Using("Python")), Pop(1)},
31 {`(choose|otherwise)\b`, Keyword, Pop(1)},
32 {`(end\w*)([^\S\n]*)(.*)`, ByGroups(Keyword, Text, Comment), Pop(1)},
33 },
34 "variable": {
35 {`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
36 {`(?<!\$)(\$)([a-zA-Z_][\w.]*)`, NameVariable, nil},
37 },
38 }
39}
40
41// Html+Genshi lexer.
42var GenshiHTMLTemplate = Register(MustNewLexer(
43 &Config{
44 Name: "Genshi HTML",
45 Aliases: []string{"html+genshi", "html+kid"},
46 Filenames: []string{},
47 MimeTypes: []string{"text/html+genshi"},
48 NotMultiline: true,
49 DotAll: true,
50 },
51 genshiMarkupRules,
52))
53
54// Genshi lexer.
55var Genshi = Register(MustNewLexer(
56 &Config{
57 Name: "Genshi",
58 Aliases: []string{"genshi", "kid", "xml+genshi", "xml+kid"},
59 Filenames: []string{"*.kid"},
60 MimeTypes: []string{"application/x-genshi", "application/x-kid"},
61 NotMultiline: true,
62 DotAll: true,
63 },
64 genshiMarkupRules,
65))
66
67func genshiMarkupRules() Rules {
68 return Rules{
69 "root": {
70 {`[^<$]+`, Other, nil},
71 {`(<\?python)(.*?)(\?>)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
72 {`<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>`, Other, nil},
73 {`<\s*py:[a-zA-Z0-9]+`, NameTag, Push("pytag")},
74 {`<\s*[a-zA-Z0-9:.]+`, NameTag, Push("tag")},
75 Include("variable"),
76 {`[<$]`, Other, nil},
77 },
78 "pytag": {
79 {`\s+`, Text, nil},
80 {`[\w:-]+\s*=`, NameAttribute, Push("pyattr")},
81 {`/?\s*>`, NameTag, Pop(1)},
82 },
83 "pyattr": {
84 {`(")(.*?)(")`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
85 {`(')(.*?)(')`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
86 {`[^\s>]+`, LiteralString, Pop(1)},
87 },
88 "tag": {
89 {`\s+`, Text, nil},
90 {`py:[\w-]+\s*=`, NameAttribute, Push("pyattr")},
91 {`[\w:-]+\s*=`, NameAttribute, Push("attr")},
92 {`/?\s*>`, NameTag, Pop(1)},
93 },
94 "attr": {
95 {`"`, LiteralString, Push("attr-dstring")},
96 {`'`, LiteralString, Push("attr-sstring")},
97 {`[^\s>]*`, LiteralString, Pop(1)},
98 },
99 "attr-dstring": {
100 {`"`, LiteralString, Pop(1)},
101 Include("strings"),
102 {`'`, LiteralString, nil},
103 },
104 "attr-sstring": {
105 {`'`, LiteralString, Pop(1)},
106 Include("strings"),
107 {`'`, LiteralString, nil},
108 },
109 "strings": {
110 {`[^"'$]+`, LiteralString, nil},
111 Include("variable"),
112 },
113 "variable": {
114 {`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
115 {`(?<!\$)(\$)([a-zA-Z_][\w\.]*)`, NameVariable, nil},
116 },
117 }
118}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/go.go b/vendor/github.com/alecthomas/chroma/v2/lexers/go.go
new file mode 100644
index 0000000..8a11ffc
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/go.go
@@ -0,0 +1,82 @@
1package lexers
2
3import (
4 "strings"
5
6 . "github.com/alecthomas/chroma/v2" // nolint
7)
8
9// Go lexer.
10var Go = Register(MustNewLexer(
11 &Config{
12 Name: "Go",
13 Aliases: []string{"go", "golang"},
14 Filenames: []string{"*.go"},
15 MimeTypes: []string{"text/x-gosrc"},
16 EnsureNL: true,
17 },
18 goRules,
19).SetAnalyser(func(text string) float32 {
20 if strings.Contains(text, "fmt.") && strings.Contains(text, "package ") {
21 return 0.5
22 }
23 if strings.Contains(text, "package ") {
24 return 0.1
25 }
26 return 0.0
27}))
28
29func goRules() Rules {
30 return Rules{
31 "root": {
32 {`\n`, Text, nil},
33 {`\s+`, Text, nil},
34 {`\\\n`, Text, nil},
35 {`//(.*?)\n`, CommentSingle, nil},
36 {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
37 {`(import|package)\b`, KeywordNamespace, nil},
38 {`(var|func|struct|map|chan|type|interface|const)\b`, KeywordDeclaration, nil},
39 {Words(``, `\b`, `break`, `default`, `select`, `case`, `defer`, `go`, `else`, `goto`, `switch`, `fallthrough`, `if`, `range`, `continue`, `for`, `return`), Keyword, nil},
40 {`(true|false|iota|nil)\b`, KeywordConstant, nil},
41 {Words(``, `\b(\()`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`, `print`, `println`, `panic`, `recover`, `close`, `complex`, `real`, `imag`, `len`, `cap`, `append`, `copy`, `delete`, `new`, `make`), ByGroups(NameBuiltin, Punctuation), nil},
42 {Words(``, `\b`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`), KeywordType, nil},
43 {`\d+i`, LiteralNumber, nil},
44 {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
45 {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
46 {`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
47 {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil},
48 {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil},
49 {`0[0-7]+`, LiteralNumberOct, nil},
50 {`0[xX][0-9a-fA-F_]+`, LiteralNumberHex, nil},
51 {`0b[01_]+`, LiteralNumberBin, nil},
52 {`(0|[1-9][0-9_]*)`, LiteralNumberInteger, nil},
53 {`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil},
54 {"(`)([^`]*)(`)", ByGroups(LiteralString, UsingLexer(TypeRemappingLexer(GoTextTemplate, TypeMapping{{Other, LiteralString, nil}})), LiteralString), nil},
55 {`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
56 {`(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])`, Operator, nil},
57 {`([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(NameFunction, UsingSelf("root"), Punctuation), nil},
58 {`[|^<>=!()\[\]{}.,;:]`, Punctuation, nil},
59 {`[^\W\d]\w*`, NameOther, nil},
60 },
61 }
62}
63
64var GoHTMLTemplate = Register(DelegatingLexer(HTML, MustNewXMLLexer(
65 embedded,
66 "embedded/go_template.xml",
67).SetConfig(
68 &Config{
69 Name: "Go HTML Template",
70 Aliases: []string{"go-html-template"},
71 },
72)))
73
74var GoTextTemplate = Register(MustNewXMLLexer(
75 embedded,
76 "embedded/go_template.xml",
77).SetConfig(
78 &Config{
79 Name: "Go Text Template",
80 Aliases: []string{"go-text-template"},
81 },
82))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go b/vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go
new file mode 100644
index 0000000..6e23938
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/haxe.go
@@ -0,0 +1,645 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Haxe lexer.
8var Haxe = Register(MustNewLexer(
9 &Config{
10 Name: "Haxe",
11 Aliases: []string{"hx", "haxe", "hxsl"},
12 Filenames: []string{"*.hx", "*.hxsl"},
13 MimeTypes: []string{"text/haxe", "text/x-haxe", "text/x-hx"},
14 DotAll: true,
15 },
16 haxeRules,
17))
18
19func haxeRules() Rules {
20 return Rules{
21 "root": {
22 Include("spaces"),
23 Include("meta"),
24 {`(?:package)\b`, KeywordNamespace, Push("semicolon", "package")},
25 {`(?:import)\b`, KeywordNamespace, Push("semicolon", "import")},
26 {`(?:using)\b`, KeywordNamespace, Push("semicolon", "using")},
27 {`(?:extern|private)\b`, KeywordDeclaration, nil},
28 {`(?:abstract)\b`, KeywordDeclaration, Push("abstract")},
29 {`(?:class|interface)\b`, KeywordDeclaration, Push("class")},
30 {`(?:enum)\b`, KeywordDeclaration, Push("enum")},
31 {`(?:typedef)\b`, KeywordDeclaration, Push("typedef")},
32 {`(?=.)`, Text, Push("expr-statement")},
33 },
34 "spaces": {
35 {`\s+`, Text, nil},
36 {`//[^\n\r]*`, CommentSingle, nil},
37 {`/\*.*?\*/`, CommentMultiline, nil},
38 {`(#)(if|elseif|else|end|error)\b`, CommentPreproc, MutatorFunc(haxePreProcMutator)},
39 },
40 "string-single-interpol": {
41 {`\$\{`, LiteralStringInterpol, Push("string-interpol-close", "expr")},
42 {`\$\$`, LiteralStringEscape, nil},
43 {`\$(?=(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, LiteralStringInterpol, Push("ident")},
44 Include("string-single"),
45 },
46 "string-single": {
47 {`'`, LiteralStringSingle, Pop(1)},
48 {`\\.`, LiteralStringEscape, nil},
49 {`.`, LiteralStringSingle, nil},
50 },
51 "string-double": {
52 {`"`, LiteralStringDouble, Pop(1)},
53 {`\\.`, LiteralStringEscape, nil},
54 {`.`, LiteralStringDouble, nil},
55 },
56 "string-interpol-close": {
57 {`\$(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, LiteralStringInterpol, nil},
58 {`\}`, LiteralStringInterpol, Pop(1)},
59 },
60 "package": {
61 Include("spaces"),
62 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
63 {`\.`, Punctuation, Push("import-ident")},
64 Default(Pop(1)),
65 },
66 "import": {
67 Include("spaces"),
68 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
69 {`\*`, Keyword, nil},
70 {`\.`, Punctuation, Push("import-ident")},
71 {`in`, KeywordNamespace, Push("ident")},
72 Default(Pop(1)),
73 },
74 "import-ident": {
75 Include("spaces"),
76 {`\*`, Keyword, Pop(1)},
77 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, Pop(1)},
78 },
79 "using": {
80 Include("spaces"),
81 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil},
82 {`\.`, Punctuation, Push("import-ident")},
83 Default(Pop(1)),
84 },
85 "preproc-error": {
86 {`\s+`, CommentPreproc, nil},
87 {`'`, LiteralStringSingle, Push("#pop", "string-single")},
88 {`"`, LiteralStringDouble, Push("#pop", "string-double")},
89 Default(Pop(1)),
90 },
91 "preproc-expr": {
92 {`\s+`, CommentPreproc, nil},
93 {`\!`, CommentPreproc, nil},
94 {`\(`, CommentPreproc, Push("#pop", "preproc-parenthesis")},
95 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Pop(1)},
96 {`\.[0-9]+`, LiteralNumberFloat, nil},
97 {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil},
98 {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil},
99 {`[0-9]+\.[0-9]+`, LiteralNumberFloat, nil},
100 {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, nil},
101 {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil},
102 {`[0-9]+`, LiteralNumberInteger, nil},
103 {`'`, LiteralStringSingle, Push("#pop", "string-single")},
104 {`"`, LiteralStringDouble, Push("#pop", "string-double")},
105 },
106 "preproc-parenthesis": {
107 {`\s+`, CommentPreproc, nil},
108 {`\)`, CommentPreproc, Pop(1)},
109 Default(Push("preproc-expr-in-parenthesis")),
110 },
111 "preproc-expr-chain": {
112 {`\s+`, CommentPreproc, nil},
113 {`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, CommentPreproc, Push("#pop", "preproc-expr-in-parenthesis")},
114 Default(Pop(1)),
115 },
116 "preproc-expr-in-parenthesis": {
117 {`\s+`, CommentPreproc, nil},
118 {`\!`, CommentPreproc, nil},
119 {`\(`, CommentPreproc, Push("#pop", "preproc-expr-chain", "preproc-parenthesis")},
120 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Push("#pop", "preproc-expr-chain")},
121 {`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
122 {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
123 {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
124 {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
125 {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")},
126 {`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "preproc-expr-chain")},
127 {`[0-9]+`, LiteralNumberInteger, Push("#pop", "preproc-expr-chain")},
128 {`'`, LiteralStringSingle, Push("#pop", "preproc-expr-chain", "string-single")},
129 {`"`, LiteralStringDouble, Push("#pop", "preproc-expr-chain", "string-double")},
130 },
131 "abstract": {
132 Include("spaces"),
133 Default(Pop(1), Push("abstract-body"), Push("abstract-relation"), Push("abstract-opaque"), Push("type-param-constraint"), Push("type-name")),
134 },
135 "abstract-body": {
136 Include("spaces"),
137 {`\{`, Punctuation, Push("#pop", "class-body")},
138 },
139 "abstract-opaque": {
140 Include("spaces"),
141 {`\(`, Punctuation, Push("#pop", "parenthesis-close", "type")},
142 Default(Pop(1)),
143 },
144 "abstract-relation": {
145 Include("spaces"),
146 {`(?:to|from)`, KeywordDeclaration, Push("type")},
147 {`,`, Punctuation, nil},
148 Default(Pop(1)),
149 },
150 "meta": {
151 Include("spaces"),
152 {`@`, NameDecorator, Push("meta-body", "meta-ident", "meta-colon")},
153 },
154 "meta-colon": {
155 Include("spaces"),
156 {`:`, NameDecorator, Pop(1)},
157 Default(Pop(1)),
158 },
159 "meta-ident": {
160 Include("spaces"),
161 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameDecorator, Pop(1)},
162 },
163 "meta-body": {
164 Include("spaces"),
165 {`\(`, NameDecorator, Push("#pop", "meta-call")},
166 Default(Pop(1)),
167 },
168 "meta-call": {
169 Include("spaces"),
170 {`\)`, NameDecorator, Pop(1)},
171 Default(Pop(1), Push("meta-call-sep"), Push("expr")),
172 },
173 "meta-call-sep": {
174 Include("spaces"),
175 {`\)`, NameDecorator, Pop(1)},
176 {`,`, Punctuation, Push("#pop", "meta-call")},
177 },
178 "typedef": {
179 Include("spaces"),
180 Default(Pop(1), Push("typedef-body"), Push("type-param-constraint"), Push("type-name")),
181 },
182 "typedef-body": {
183 Include("spaces"),
184 {`=`, Operator, Push("#pop", "optional-semicolon", "type")},
185 },
186 "enum": {
187 Include("spaces"),
188 Default(Pop(1), Push("enum-body"), Push("bracket-open"), Push("type-param-constraint"), Push("type-name")),
189 },
190 "enum-body": {
191 Include("spaces"),
192 Include("meta"),
193 {`\}`, Punctuation, Pop(1)},
194 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("enum-member", "type-param-constraint")},
195 },
196 "enum-member": {
197 Include("spaces"),
198 {`\(`, Punctuation, Push("#pop", "semicolon", "flag", "function-param")},
199 Default(Pop(1), Push("semicolon"), Push("flag")),
200 },
201 "class": {
202 Include("spaces"),
203 Default(Pop(1), Push("class-body"), Push("bracket-open"), Push("extends"), Push("type-param-constraint"), Push("type-name")),
204 },
205 "extends": {
206 Include("spaces"),
207 {`(?:extends|implements)\b`, KeywordDeclaration, Push("type")},
208 {`,`, Punctuation, nil},
209 Default(Pop(1)),
210 },
211 "bracket-open": {
212 Include("spaces"),
213 {`\{`, Punctuation, Pop(1)},
214 },
215 "bracket-close": {
216 Include("spaces"),
217 {`\}`, Punctuation, Pop(1)},
218 },
219 "class-body": {
220 Include("spaces"),
221 Include("meta"),
222 {`\}`, Punctuation, Pop(1)},
223 {`(?:static|public|private|override|dynamic|inline|macro)\b`, KeywordDeclaration, nil},
224 Default(Push("class-member")),
225 },
226 "class-member": {
227 Include("spaces"),
228 {`(var)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "var")},
229 {`(function)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "class-method")},
230 },
231 "function-local": {
232 Include("spaces"),
233 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")},
234 Default(Pop(1), Push("optional-expr"), Push("flag"), Push("function-param"), Push("parenthesis-open"), Push("type-param-constraint")),
235 },
236 "optional-expr": {
237 Include("spaces"),
238 Include("expr"),
239 Default(Pop(1)),
240 },
241 "class-method": {
242 Include("spaces"),
243 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")},
244 },
245 "function-param": {
246 Include("spaces"),
247 {`\)`, Punctuation, Pop(1)},
248 {`\?`, Punctuation, nil},
249 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "function-param-sep", "assign", "flag")},
250 },
251 "function-param-sep": {
252 Include("spaces"),
253 {`\)`, Punctuation, Pop(1)},
254 {`,`, Punctuation, Push("#pop", "function-param")},
255 },
256 "prop-get-set": {
257 Include("spaces"),
258 {`\(`, Punctuation, Push("#pop", "parenthesis-close", "prop-get-set-opt", "comma", "prop-get-set-opt")},
259 Default(Pop(1)),
260 },
261 "prop-get-set-opt": {
262 Include("spaces"),
263 {`(?:default|null|never|dynamic|get|set)\b`, Keyword, Pop(1)},
264 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Pop(1)},
265 },
266 "expr-statement": {
267 Include("spaces"),
268 Default(Pop(1), Push("optional-semicolon"), Push("expr")),
269 },
270 "expr": {
271 Include("spaces"),
272 {`@`, NameDecorator, Push("#pop", "optional-expr", "meta-body", "meta-ident", "meta-colon")},
273 {`(?:\+\+|\-\-|~(?!/)|!|\-)`, Operator, nil},
274 {`\(`, Punctuation, Push("#pop", "expr-chain", "parenthesis")},
275 {`(?:static|public|private|override|dynamic|inline)\b`, KeywordDeclaration, nil},
276 {`(?:function)\b`, KeywordDeclaration, Push("#pop", "expr-chain", "function-local")},
277 {`\{`, Punctuation, Push("#pop", "expr-chain", "bracket")},
278 {`(?:true|false|null)\b`, KeywordConstant, Push("#pop", "expr-chain")},
279 {`(?:this)\b`, Keyword, Push("#pop", "expr-chain")},
280 {`(?:cast)\b`, Keyword, Push("#pop", "expr-chain", "cast")},
281 {`(?:try)\b`, Keyword, Push("#pop", "catch", "expr")},
282 {`(?:var)\b`, KeywordDeclaration, Push("#pop", "var")},
283 {`(?:new)\b`, Keyword, Push("#pop", "expr-chain", "new")},
284 {`(?:switch)\b`, Keyword, Push("#pop", "switch")},
285 {`(?:if)\b`, Keyword, Push("#pop", "if")},
286 {`(?:do)\b`, Keyword, Push("#pop", "do")},
287 {`(?:while)\b`, Keyword, Push("#pop", "while")},
288 {`(?:for)\b`, Keyword, Push("#pop", "for")},
289 {`(?:untyped|throw)\b`, Keyword, nil},
290 {`(?:return)\b`, Keyword, Push("#pop", "optional-expr")},
291 {`(?:macro)\b`, Keyword, Push("#pop", "macro")},
292 {`(?:continue|break)\b`, Keyword, Pop(1)},
293 {`(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)))`, Name, Push("#pop", "dollar")},
294 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "expr-chain")},
295 {`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
296 {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
297 {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
298 {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")},
299 {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "expr-chain")},
300 {`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "expr-chain")},
301 {`[0-9]+`, LiteralNumberInteger, Push("#pop", "expr-chain")},
302 {`'`, LiteralStringSingle, Push("#pop", "expr-chain", "string-single-interpol")},
303 {`"`, LiteralStringDouble, Push("#pop", "expr-chain", "string-double")},
304 {`~/(\\\\|\\/|[^/\n])*/[gimsu]*`, LiteralStringRegex, Push("#pop", "expr-chain")},
305 {`\[`, Punctuation, Push("#pop", "expr-chain", "array-decl")},
306 },
307 "expr-chain": {
308 Include("spaces"),
309 {`(?:\+\+|\-\-)`, Operator, nil},
310 {`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, Operator, Push("#pop", "expr")},
311 {`(?:in)\b`, Keyword, Push("#pop", "expr")},
312 {`\?`, Operator, Push("#pop", "expr", "ternary", "expr")},
313 {`(\.)((?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, ByGroups(Punctuation, Name), nil},
314 {`\[`, Punctuation, Push("array-access")},
315 {`\(`, Punctuation, Push("call")},
316 Default(Pop(1)),
317 },
318 "macro": {
319 Include("spaces"),
320 Include("meta"),
321 {`:`, Punctuation, Push("#pop", "type")},
322 {`(?:extern|private)\b`, KeywordDeclaration, nil},
323 {`(?:abstract)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "abstract")},
324 {`(?:class|interface)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "macro-class")},
325 {`(?:enum)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "enum")},
326 {`(?:typedef)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "typedef")},
327 Default(Pop(1), Push("expr")),
328 },
329 "macro-class": {
330 {`\{`, Punctuation, Push("#pop", "class-body")},
331 Include("class"),
332 },
333 "cast": {
334 Include("spaces"),
335 {`\(`, Punctuation, Push("#pop", "parenthesis-close", "cast-type", "expr")},
336 Default(Pop(1), Push("expr")),
337 },
338 "cast-type": {
339 Include("spaces"),
340 {`,`, Punctuation, Push("#pop", "type")},
341 Default(Pop(1)),
342 },
343 "catch": {
344 Include("spaces"),
345 {`(?:catch)\b`, Keyword, Push("expr", "function-param", "parenthesis-open")},
346 Default(Pop(1)),
347 },
348 "do": {
349 Include("spaces"),
350 Default(Pop(1), Push("do-while"), Push("expr")),
351 },
352 "do-while": {
353 Include("spaces"),
354 {`(?:while)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")},
355 },
356 "while": {
357 Include("spaces"),
358 {`\(`, Punctuation, Push("#pop", "expr", "parenthesis")},
359 },
360 "for": {
361 Include("spaces"),
362 {`\(`, Punctuation, Push("#pop", "expr", "parenthesis")},
363 },
364 "if": {
365 Include("spaces"),
366 {`\(`, Punctuation, Push("#pop", "else", "optional-semicolon", "expr", "parenthesis")},
367 },
368 "else": {
369 Include("spaces"),
370 {`(?:else)\b`, Keyword, Push("#pop", "expr")},
371 Default(Pop(1)),
372 },
373 "switch": {
374 Include("spaces"),
375 Default(Pop(1), Push("switch-body"), Push("bracket-open"), Push("expr")),
376 },
377 "switch-body": {
378 Include("spaces"),
379 {`(?:case|default)\b`, Keyword, Push("case-block", "case")},
380 {`\}`, Punctuation, Pop(1)},
381 },
382 "case": {
383 Include("spaces"),
384 {`:`, Punctuation, Pop(1)},
385 Default(Pop(1), Push("case-sep"), Push("case-guard"), Push("expr")),
386 },
387 "case-sep": {
388 Include("spaces"),
389 {`:`, Punctuation, Pop(1)},
390 {`,`, Punctuation, Push("#pop", "case")},
391 },
392 "case-guard": {
393 Include("spaces"),
394 {`(?:if)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")},
395 Default(Pop(1)),
396 },
397 "case-block": {
398 Include("spaces"),
399 {`(?!(?:case|default)\b|\})`, Keyword, Push("expr-statement")},
400 Default(Pop(1)),
401 },
402 "new": {
403 Include("spaces"),
404 Default(Pop(1), Push("call"), Push("parenthesis-open"), Push("type")),
405 },
406 "array-decl": {
407 Include("spaces"),
408 {`\]`, Punctuation, Pop(1)},
409 Default(Pop(1), Push("array-decl-sep"), Push("expr")),
410 },
411 "array-decl-sep": {
412 Include("spaces"),
413 {`\]`, Punctuation, Pop(1)},
414 {`,`, Punctuation, Push("#pop", "array-decl")},
415 },
416 "array-access": {
417 Include("spaces"),
418 Default(Pop(1), Push("array-access-close"), Push("expr")),
419 },
420 "array-access-close": {
421 Include("spaces"),
422 {`\]`, Punctuation, Pop(1)},
423 },
424 "comma": {
425 Include("spaces"),
426 {`,`, Punctuation, Pop(1)},
427 },
428 "colon": {
429 Include("spaces"),
430 {`:`, Punctuation, Pop(1)},
431 },
432 "semicolon": {
433 Include("spaces"),
434 {`;`, Punctuation, Pop(1)},
435 },
436 "optional-semicolon": {
437 Include("spaces"),
438 {`;`, Punctuation, Pop(1)},
439 Default(Pop(1)),
440 },
441 "ident": {
442 Include("spaces"),
443 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)},
444 },
445 "dollar": {
446 Include("spaces"),
447 {`\{`, Punctuation, Push("#pop", "expr-chain", "bracket-close", "expr")},
448 Default(Pop(1), Push("expr-chain")),
449 },
450 "type-name": {
451 Include("spaces"),
452 {`_*[A-Z]\w*`, Name, Pop(1)},
453 },
454 "type-full-name": {
455 Include("spaces"),
456 {`\.`, Punctuation, Push("ident")},
457 Default(Pop(1)),
458 },
459 "type": {
460 Include("spaces"),
461 {`\?`, Punctuation, nil},
462 {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-check", "type-full-name")},
463 {`\{`, Punctuation, Push("#pop", "type-check", "type-struct")},
464 {`\(`, Punctuation, Push("#pop", "type-check", "type-parenthesis")},
465 },
466 "type-parenthesis": {
467 Include("spaces"),
468 Default(Pop(1), Push("parenthesis-close"), Push("type")),
469 },
470 "type-check": {
471 Include("spaces"),
472 {`->`, Punctuation, Push("#pop", "type")},
473 {`<(?!=)`, Punctuation, Push("type-param")},
474 Default(Pop(1)),
475 },
476 "type-struct": {
477 Include("spaces"),
478 {`\}`, Punctuation, Pop(1)},
479 {`\?`, Punctuation, nil},
480 {`>`, Punctuation, Push("comma", "type")},
481 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-struct-sep", "type", "colon")},
482 Include("class-body"),
483 },
484 "type-struct-sep": {
485 Include("spaces"),
486 {`\}`, Punctuation, Pop(1)},
487 {`,`, Punctuation, Push("#pop", "type-struct")},
488 },
489 "type-param-type": {
490 {`\.[0-9]+`, LiteralNumberFloat, Pop(1)},
491 {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)},
492 {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)},
493 {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Pop(1)},
494 {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Pop(1)},
495 {`0x[0-9a-fA-F]+`, LiteralNumberHex, Pop(1)},
496 {`[0-9]+`, LiteralNumberInteger, Pop(1)},
497 {`'`, LiteralStringSingle, Push("#pop", "string-single")},
498 {`"`, LiteralStringDouble, Push("#pop", "string-double")},
499 {`~/(\\\\|\\/|[^/\n])*/[gim]*`, LiteralStringRegex, Pop(1)},
500 {`\[`, Operator, Push("#pop", "array-decl")},
501 Include("type"),
502 },
503 "type-param": {
504 Include("spaces"),
505 Default(Pop(1), Push("type-param-sep"), Push("type-param-type")),
506 },
507 "type-param-sep": {
508 Include("spaces"),
509 {`>`, Punctuation, Pop(1)},
510 {`,`, Punctuation, Push("#pop", "type-param")},
511 },
512 "type-param-constraint": {
513 Include("spaces"),
514 {`<(?!=)`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")},
515 Default(Pop(1)),
516 },
517 "type-param-constraint-sep": {
518 Include("spaces"),
519 {`>`, Punctuation, Pop(1)},
520 {`,`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")},
521 },
522 "type-param-constraint-flag": {
523 Include("spaces"),
524 {`:`, Punctuation, Push("#pop", "type-param-constraint-flag-type")},
525 Default(Pop(1)),
526 },
527 "type-param-constraint-flag-type": {
528 Include("spaces"),
529 {`\(`, Punctuation, Push("#pop", "type-param-constraint-flag-type-sep", "type")},
530 Default(Pop(1), Push("type")),
531 },
532 "type-param-constraint-flag-type-sep": {
533 Include("spaces"),
534 {`\)`, Punctuation, Pop(1)},
535 {`,`, Punctuation, Push("type")},
536 },
537 "parenthesis": {
538 Include("spaces"),
539 Default(Pop(1), Push("parenthesis-close"), Push("flag"), Push("expr")),
540 },
541 "parenthesis-open": {
542 Include("spaces"),
543 {`\(`, Punctuation, Pop(1)},
544 },
545 "parenthesis-close": {
546 Include("spaces"),
547 {`\)`, Punctuation, Pop(1)},
548 },
549 "var": {
550 Include("spaces"),
551 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Push("#pop", "var-sep", "assign", "flag", "prop-get-set")},
552 },
553 "var-sep": {
554 Include("spaces"),
555 {`,`, Punctuation, Push("#pop", "var")},
556 Default(Pop(1)),
557 },
558 "assign": {
559 Include("spaces"),
560 {`=`, Operator, Push("#pop", "expr")},
561 Default(Pop(1)),
562 },
563 "flag": {
564 Include("spaces"),
565 {`:`, Punctuation, Push("#pop", "type")},
566 Default(Pop(1)),
567 },
568 "ternary": {
569 Include("spaces"),
570 {`:`, Operator, Pop(1)},
571 },
572 "call": {
573 Include("spaces"),
574 {`\)`, Punctuation, Pop(1)},
575 Default(Pop(1), Push("call-sep"), Push("expr")),
576 },
577 "call-sep": {
578 Include("spaces"),
579 {`\)`, Punctuation, Pop(1)},
580 {`,`, Punctuation, Push("#pop", "call")},
581 },
582 "bracket": {
583 Include("spaces"),
584 {`(?!(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))))(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "bracket-check")},
585 {`'`, LiteralStringSingle, Push("#pop", "bracket-check", "string-single")},
586 {`"`, LiteralStringDouble, Push("#pop", "bracket-check", "string-double")},
587 Default(Pop(1), Push("block")),
588 },
589 "bracket-check": {
590 Include("spaces"),
591 {`:`, Punctuation, Push("#pop", "object-sep", "expr")},
592 Default(Pop(1), Push("block"), Push("optional-semicolon"), Push("expr-chain")),
593 },
594 "block": {
595 Include("spaces"),
596 {`\}`, Punctuation, Pop(1)},
597 Default(Push("expr-statement")),
598 },
599 "object": {
600 Include("spaces"),
601 {`\}`, Punctuation, Pop(1)},
602 Default(Pop(1), Push("object-sep"), Push("expr"), Push("colon"), Push("ident-or-string")),
603 },
604 "ident-or-string": {
605 Include("spaces"),
606 {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)},
607 {`'`, LiteralStringSingle, Push("#pop", "string-single")},
608 {`"`, LiteralStringDouble, Push("#pop", "string-double")},
609 },
610 "object-sep": {
611 Include("spaces"),
612 {`\}`, Punctuation, Pop(1)},
613 {`,`, Punctuation, Push("#pop", "object")},
614 },
615 }
616}
617
618func haxePreProcMutator(state *LexerState) error {
619 stack, ok := state.Get("haxe-pre-proc").([][]string)
620 if !ok {
621 stack = [][]string{}
622 }
623
624 proc := state.Groups[2]
625 switch proc {
626 case "if":
627 stack = append(stack, state.Stack)
628 case "else", "elseif":
629 if len(stack) > 0 {
630 state.Stack = stack[len(stack)-1]
631 }
632 case "end":
633 stack = stack[:len(stack)-1]
634 }
635
636 if proc == "if" || proc == "elseif" {
637 state.Stack = append(state.Stack, "preproc-expr")
638 }
639
640 if proc == "error" {
641 state.Stack = append(state.Stack, "preproc-error")
642 }
643 state.Set("haxe-pre-proc", stack)
644 return nil
645}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/html.go b/vendor/github.com/alecthomas/chroma/v2/lexers/html.go
new file mode 100644
index 0000000..2fa5cc0
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/html.go
@@ -0,0 +1,60 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// HTML lexer.
8var HTML = Register(MustNewLexer(
9 &Config{
10 Name: "HTML",
11 Aliases: []string{"html"},
12 Filenames: []string{"*.html", "*.htm", "*.xhtml", "*.xslt"},
13 MimeTypes: []string{"text/html", "application/xhtml+xml"},
14 NotMultiline: true,
15 DotAll: true,
16 CaseInsensitive: true,
17 },
18 htmlRules,
19))
20
21func htmlRules() Rules {
22 return Rules{
23 "root": {
24 {`[^<&]+`, Text, nil},
25 {`&\S*?;`, NameEntity, nil},
26 {`\<\!\[CDATA\[.*?\]\]\>`, CommentPreproc, nil},
27 {`<!--`, Comment, Push("comment")},
28 {`<\?.*?\?>`, CommentPreproc, nil},
29 {`<![^>]*>`, CommentPreproc, nil},
30 {`(<)(\s*)(script)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("script-content", "tag")},
31 {`(<)(\s*)(style)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("style-content", "tag")},
32 {`(<)(\s*)([\w:.-]+)`, ByGroups(Punctuation, Text, NameTag), Push("tag")},
33 {`(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), nil},
34 },
35 "comment": {
36 {`[^-]+`, Comment, nil},
37 {`-->`, Comment, Pop(1)},
38 {`-`, Comment, nil},
39 },
40 "tag": {
41 {`\s+`, Text, nil},
42 {`([\w:-]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")},
43 {`[\w:-]+`, NameAttribute, nil},
44 {`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)},
45 },
46 "script-content": {
47 {`(<)(\s*)(/)(\s*)(script)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
48 {`.+?(?=<\s*/\s*script\s*>)`, Using("Javascript"), nil},
49 },
50 "style-content": {
51 {`(<)(\s*)(/)(\s*)(style)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
52 {`.+?(?=<\s*/\s*style\s*>)`, Using("CSS"), nil},
53 },
54 "attr": {
55 {`".*?"`, LiteralString, Pop(1)},
56 {`'.*?'`, LiteralString, Pop(1)},
57 {`[^\s>]+`, LiteralString, Pop(1)},
58 },
59 }
60}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/http.go b/vendor/github.com/alecthomas/chroma/v2/lexers/http.go
new file mode 100644
index 0000000..e756202
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/http.go
@@ -0,0 +1,131 @@
1package lexers
2
3import (
4 "strings"
5
6 . "github.com/alecthomas/chroma/v2" // nolint
7)
8
9// HTTP lexer.
10var HTTP = Register(httpBodyContentTypeLexer(MustNewLexer(
11 &Config{
12 Name: "HTTP",
13 Aliases: []string{"http"},
14 Filenames: []string{},
15 MimeTypes: []string{},
16 NotMultiline: true,
17 DotAll: true,
18 },
19 httpRules,
20)))
21
22func httpRules() Rules {
23 return Rules{
24 "root": {
25 {`(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)(HTTP)(/)([12]\.[01])(\r?\n|\Z)`, ByGroups(NameFunction, Text, NameNamespace, Text, KeywordReserved, Operator, LiteralNumber, Text), Push("headers")},
26 {`(HTTP)(/)([12]\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")},
27 },
28 "headers": {
29 {`([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpHeaderBlock), nil},
30 {`([\t ]+)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpContinuousHeaderBlock), nil},
31 {`\r?\n`, Text, Push("content")},
32 },
33 "content": {
34 {`.+`, EmitterFunc(httpContentBlock), nil},
35 },
36 }
37}
38
39func httpContentBlock(groups []string, state *LexerState) Iterator {
40 tokens := []Token{
41 {Generic, groups[0]},
42 }
43 return Literator(tokens...)
44}
45
46func httpHeaderBlock(groups []string, state *LexerState) Iterator {
47 tokens := []Token{
48 {Name, groups[1]},
49 {Text, groups[2]},
50 {Operator, groups[3]},
51 {Text, groups[4]},
52 {Literal, groups[5]},
53 {Text, groups[6]},
54 }
55 return Literator(tokens...)
56}
57
58func httpContinuousHeaderBlock(groups []string, state *LexerState) Iterator {
59 tokens := []Token{
60 {Text, groups[1]},
61 {Literal, groups[2]},
62 {Text, groups[3]},
63 }
64 return Literator(tokens...)
65}
66
67func httpBodyContentTypeLexer(lexer Lexer) Lexer { return &httpBodyContentTyper{lexer} }
68
69type httpBodyContentTyper struct{ Lexer }
70
71func (d *httpBodyContentTyper) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit
72 var contentType string
73 var isContentType bool
74 var subIterator Iterator
75
76 it, err := d.Lexer.Tokenise(options, text)
77 if err != nil {
78 return nil, err
79 }
80
81 return func() Token {
82 token := it()
83
84 if token == EOF {
85 if subIterator != nil {
86 return subIterator()
87 }
88 return EOF
89 }
90
91 switch {
92 case token.Type == Name && strings.ToLower(token.Value) == "content-type":
93 {
94 isContentType = true
95 }
96 case token.Type == Literal && isContentType:
97 {
98 isContentType = false
99 contentType = strings.TrimSpace(token.Value)
100 pos := strings.Index(contentType, ";")
101 if pos > 0 {
102 contentType = strings.TrimSpace(contentType[:pos])
103 }
104 }
105 case token.Type == Generic && contentType != "":
106 {
107 lexer := MatchMimeType(contentType)
108
109 // application/calendar+xml can be treated as application/xml
110 // if there's not a better match.
111 if lexer == nil && strings.Contains(contentType, "+") {
112 slashPos := strings.Index(contentType, "/")
113 plusPos := strings.LastIndex(contentType, "+")
114 contentType = contentType[:slashPos+1] + contentType[plusPos+1:]
115 lexer = MatchMimeType(contentType)
116 }
117
118 if lexer == nil {
119 token.Type = Text
120 } else {
121 subIterator, err = lexer.Tokenise(nil, token.Value)
122 if err != nil {
123 panic(err)
124 }
125 return EOF
126 }
127 }
128 }
129 return token
130 }, nil
131}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go b/vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go
new file mode 100644
index 0000000..161caef
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/lexers.go
@@ -0,0 +1,73 @@
1package lexers
2
3import (
4 "embed"
5 "io/fs"
6
7 "github.com/alecthomas/chroma/v2"
8)
9
10//go:embed embedded
11var embedded embed.FS
12
13// GlobalLexerRegistry is the global LexerRegistry of Lexers.
14var GlobalLexerRegistry = func() *chroma.LexerRegistry {
15 reg := chroma.NewLexerRegistry()
16 // index(reg)
17 paths, err := fs.Glob(embedded, "embedded/*.xml")
18 if err != nil {
19 panic(err)
20 }
21 for _, path := range paths {
22 reg.Register(chroma.MustNewXMLLexer(embedded, path))
23 }
24 return reg
25}()
26
27// Names of all lexers, optionally including aliases.
28func Names(withAliases bool) []string {
29 return GlobalLexerRegistry.Names(withAliases)
30}
31
32// Get a Lexer by name, alias or file extension.
33func Get(name string) chroma.Lexer {
34 return GlobalLexerRegistry.Get(name)
35}
36
37// MatchMimeType attempts to find a lexer for the given MIME type.
38func MatchMimeType(mimeType string) chroma.Lexer {
39 return GlobalLexerRegistry.MatchMimeType(mimeType)
40}
41
42// Match returns the first lexer matching filename.
43func Match(filename string) chroma.Lexer {
44 return GlobalLexerRegistry.Match(filename)
45}
46
47// Register a Lexer with the global registry.
48func Register(lexer chroma.Lexer) chroma.Lexer {
49 return GlobalLexerRegistry.Register(lexer)
50}
51
52// Analyse text content and return the "best" lexer..
53func Analyse(text string) chroma.Lexer {
54 return GlobalLexerRegistry.Analyse(text)
55}
56
57// PlaintextRules is used for the fallback lexer as well as the explicit
58// plaintext lexer.
59func PlaintextRules() chroma.Rules {
60 return chroma.Rules{
61 "root": []chroma.Rule{
62 {`.+`, chroma.Text, nil},
63 {`\n`, chroma.Text, nil},
64 },
65 }
66}
67
68// Fallback lexer if no other is found.
69var Fallback chroma.Lexer = chroma.MustNewLexer(&chroma.Config{
70 Name: "fallback",
71 Filenames: []string{"*"},
72 Priority: -1,
73}, PlaintextRules)
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/make.go b/vendor/github.com/alecthomas/chroma/v2/lexers/make.go
new file mode 100644
index 0000000..48bdc13
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/make.go
@@ -0,0 +1,56 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Makefile lexer.
8var Makefile = Register(MustNewLexer(
9 &Config{
10 Name: "Base Makefile",
11 Aliases: []string{"make", "makefile", "mf", "bsdmake"},
12 Filenames: []string{"*.mak", "*.mk", "Makefile", "makefile", "Makefile.*", "GNUmakefile"},
13 MimeTypes: []string{"text/x-makefile"},
14 EnsureNL: true,
15 },
16 makefileRules,
17))
18
19func makefileRules() Rules {
20 return Rules{
21 "root": {
22 {`^(?:[\t ]+.*\n|\n)+`, Using("Bash"), nil},
23 {`\$[<@$+%?|*]`, Keyword, nil},
24 {`\s+`, Text, nil},
25 {`#.*?\n`, Comment, nil},
26 {`(export)(\s+)(?=[\w${}\t -]+\n)`, ByGroups(Keyword, Text), Push("export")},
27 {`export\s+`, Keyword, nil},
28 {`([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)`, ByGroups(NameVariable, Text, Operator, Text, Using("Bash")), nil},
29 {`(?s)"(\\\\|\\.|[^"\\])*"`, LiteralStringDouble, nil},
30 {`(?s)'(\\\\|\\.|[^'\\])*'`, LiteralStringSingle, nil},
31 {`([^\n:]+)(:+)([ \t]*)`, ByGroups(NameFunction, Operator, Text), Push("block-header")},
32 {`\$\(`, Keyword, Push("expansion")},
33 },
34 "expansion": {
35 {`[^$a-zA-Z_()]+`, Text, nil},
36 {`[a-zA-Z_]+`, NameVariable, nil},
37 {`\$`, Keyword, nil},
38 {`\(`, Keyword, Push()},
39 {`\)`, Keyword, Pop(1)},
40 },
41 "export": {
42 {`[\w${}-]+`, NameVariable, nil},
43 {`\n`, Text, Pop(1)},
44 {`\s+`, Text, nil},
45 },
46 "block-header": {
47 {`[,|]`, Punctuation, nil},
48 {`#.*?\n`, Comment, Pop(1)},
49 {`\\\n`, Text, nil},
50 {`\$\(`, Keyword, Push("expansion")},
51 {`[a-zA-Z_]+`, Name, nil},
52 {`\n`, Text, Pop(1)},
53 {`.`, Text, nil},
54 },
55 }
56}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/mako.go b/vendor/github.com/alecthomas/chroma/v2/lexers/mako.go
new file mode 100644
index 0000000..0de18fe
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/mako.go
@@ -0,0 +1,62 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Mako lexer.
8var Mako = Register(MustNewLexer(
9 &Config{
10 Name: "Mako",
11 Aliases: []string{"mako"},
12 Filenames: []string{"*.mao"},
13 MimeTypes: []string{"application/x-mako"},
14 },
15 makoRules,
16))
17
18func makoRules() Rules {
19 return Rules{
20 "root": {
21 {`(\s*)(%)(\s*end(?:\w+))(\n|\Z)`, ByGroups(Text, CommentPreproc, Keyword, Other), nil},
22 {`(\s*)(%)([^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Using("Python"), Other), nil},
23 {`(\s*)(##[^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Other), nil},
24 {`(?s)<%doc>.*?</%doc>`, CommentPreproc, nil},
25 {`(<%)([\w.:]+)`, ByGroups(CommentPreproc, NameBuiltin), Push("tag")},
26 {`(</%)([\w.:]+)(>)`, ByGroups(CommentPreproc, NameBuiltin, CommentPreproc), nil},
27 {`<%(?=([\w.:]+))`, CommentPreproc, Push("ondeftags")},
28 {`(<%(?:!?))(.*?)(%>)(?s)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
29 {`(\$\{)(.*?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
30 {`(?sx)
31 (.+?) # anything, followed by:
32 (?:
33 (?<=\n)(?=%|\#\#) | # an eval or comment line
34 (?=\#\*) | # multiline comment
35 (?=</?%) | # a python block
36 # call start or end
37 (?=\$\{) | # a substitution
38 (?<=\n)(?=\s*%) |
39 # - don't consume
40 (\\\n) | # an escaped newline
41 \Z # end of string
42 )
43 `, ByGroups(Other, Operator), nil},
44 {`\s+`, Text, nil},
45 },
46 "ondeftags": {
47 {`<%`, CommentPreproc, nil},
48 {`(?<=<%)(include|inherit|namespace|page)`, NameBuiltin, nil},
49 Include("tag"),
50 },
51 "tag": {
52 {`((?:\w+)\s*=)(\s*)(".*?")`, ByGroups(NameAttribute, Text, LiteralString), nil},
53 {`/?\s*>`, CommentPreproc, Pop(1)},
54 {`\s+`, Text, nil},
55 },
56 "attr": {
57 {`".*?"`, LiteralString, Pop(1)},
58 {`'.*?'`, LiteralString, Pop(1)},
59 {`[^\s>]+`, LiteralString, Pop(1)},
60 },
61 }
62}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go b/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
new file mode 100644
index 0000000..1fb9f5b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
@@ -0,0 +1,47 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Markdown lexer.
8var Markdown = Register(DelegatingLexer(HTML, MustNewLexer(
9 &Config{
10 Name: "markdown",
11 Aliases: []string{"md", "mkd"},
12 Filenames: []string{"*.md", "*.mkd", "*.markdown"},
13 MimeTypes: []string{"text/x-markdown"},
14 },
15 markdownRules,
16)))
17
18func markdownRules() Rules {
19 return Rules{
20 "root": {
21 {`^(#[^#].+\n)`, ByGroups(GenericHeading), nil},
22 {`^(#{2,6}.+\n)`, ByGroups(GenericSubheading), nil},
23 {`^(\s*)([*-] )(\[[ xX]\])( .+\n)`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
24 {`^(\s*)([*-])(\s)(.+\n)`, ByGroups(Text, Keyword, Text, UsingSelf("inline")), nil},
25 {`^(\s*)([0-9]+\.)( .+\n)`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
26 {`^(\s*>\s)(.+\n)`, ByGroups(Keyword, GenericEmph), nil},
27 {"^(```\\n)([\\w\\W]*?)(^```$)", ByGroups(String, Text, String), nil},
28 {
29 "^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)",
30 UsingByGroup(2, 4, String, String, String, Text, String),
31 nil,
32 },
33 Include("inline"),
34 },
35 "inline": {
36 {`\\.`, Text, nil},
37 {`(\s)(\*|_)((?:(?!\2).)*)(\2)((?=\W|\n))`, ByGroups(Text, GenericEmph, GenericEmph, GenericEmph, Text), nil},
38 {`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil},
39 {`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil},
40 {"`[^`]+`", LiteralStringBacktick, nil},
41 {`[@#][\w/:]+`, NameEntity, nil},
42 {`(!?\[)([^]]+)(\])(\()([^)]+)(\))`, ByGroups(Text, NameTag, Text, Text, NameAttribute, Text), nil},
43 {`[^\\\s]+`, Other, nil},
44 {`.|\n`, Other, nil},
45 },
46 }
47}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go b/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
new file mode 100644
index 0000000..57e6120
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
@@ -0,0 +1,44 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Mason lexer.
8var Mason = Register(MustNewLexer(
9 &Config{
10 Name: "Mason",
11 Aliases: []string{"mason"},
12 Filenames: []string{"*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"},
13 MimeTypes: []string{"application/x-mason"},
14 Priority: 0.1,
15 },
16 masonRules,
17))
18
19func masonRules() Rules {
20 return Rules{
21 "root": {
22 {`\s+`, Text, nil},
23 {`(<%doc>)(.*?)(</%doc>)(?s)`, ByGroups(NameTag, CommentMultiline, NameTag), nil},
24 {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
25 {`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Perl"), NameTag), nil},
26 {`(<&[^|])(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
27 {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
28 {`</&>`, NameTag, nil},
29 {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Perl"), NameTag), nil},
30 {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
31 {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Perl"), Other), nil},
32 {`(?sx)
33 (.+?) # anything, followed by:
34 (?:
35 (?<=\n)(?=[%#]) | # an eval or comment line
36 (?=</?[%&]) | # a substitution or block or
37 # call start or end
38 # - don't consume
39 (\\\n) | # an escaped newline
40 \Z # end of string
41 )`, ByGroups(Using("HTML"), Operator), nil},
42 },
43 }
44}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go b/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
new file mode 100644
index 0000000..42ff0e6
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
@@ -0,0 +1,42 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Myghty lexer.
8var Myghty = Register(MustNewLexer(
9 &Config{
10 Name: "Myghty",
11 Aliases: []string{"myghty"},
12 Filenames: []string{"*.myt", "autodelegate"},
13 MimeTypes: []string{"application/x-myghty"},
14 },
15 myghtyRules,
16))
17
18func myghtyRules() Rules {
19 return Rules{
20 "root": {
21 {`\s+`, Text, nil},
22 {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
23 {`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Python2"), NameTag), nil},
24 {`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
25 {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
26 {`</&>`, NameTag, nil},
27 {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Python2"), NameTag), nil},
28 {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
29 {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Python2"), Other), nil},
30 {`(?sx)
31 (.+?) # anything, followed by:
32 (?:
33 (?<=\n)(?=[%#]) | # an eval or comment line
34 (?=</?[%&]) | # a substitution or block or
35 # call start or end
36 # - don't consume
37 (\\\n) | # an escaped newline
38 \Z # end of string
39 )`, ByGroups(Other, Operator), nil},
40 },
41 }
42}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go b/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go
new file mode 100644
index 0000000..32e94c2
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go
@@ -0,0 +1,33 @@
1package lexers
2
3import (
4 "regexp"
5)
6
7var (
8 mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`")
9 mysqlAnalyserNameBetweenBracketRe = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`)
10)
11
12func init() { // nolint: gochecknoinits
13 Get("mysql").
14 SetAnalyser(func(text string) float32 {
15 nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1))
16 nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1))
17
18 var result float32
19
20 // Same logic as above in the TSQL analysis.
21 dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount
22 if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) {
23 // Found at least twice as many `name` as [name].
24 result += 0.5
25 } else if nameBetweenBacktickCount > nameBetweenBracketCount {
26 result += 0.2
27 } else if nameBetweenBacktickCount > 0 {
28 result += 0.1
29 }
30
31 return result
32 })
33}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go b/vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go
new file mode 100644
index 0000000..ea19631
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/openedgeabl.go
@@ -0,0 +1,49 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// OpenedgeAbl lexer.
8var OpenEdgeABL = Register(MustNewLexer(
9 &Config{
10 Name: "OpenEdge ABL",
11 Aliases: []string{"openedge", "abl", "progress", "openedgeabl"},
12 Filenames: []string{"*.p", "*.cls", "*.w", "*.i"},
13 MimeTypes: []string{"text/x-openedge", "application/x-openedge"},
14 },
15 func() Rules {
16 return Rules{
17 "root": {
18 {`/\*`, CommentMultiline, Push("comment")},
19 {`//.*?$`, CommentSingle, nil},
20 {`\{`, CommentPreproc, Push("preprocessor")},
21 {`\s*&.*`, CommentPreproc, nil},
22 {`0[xX][0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil},
23 {`(?i)(DEFINE|DEF|DEFI|DEFIN)\b`, KeywordDeclaration, nil},
24 {`(?i)(^|(?<=[^\w\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|COM-HANDLE|DATE|DATETIME|DATETIME-TZ|DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|INT64|INTEGER|INT|INTE|INTEG|INTEGE|LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^\w\-]))`, KeywordType, nil},
25 {Words(`(?i)(^|(?<=[^\w\-]))`, `\s*($|(?=[^\w\-]))`, `ABS`, `ABSO`, `ABSOL`, `ABSOLU`, `ABSOLUT`, `ABSOLUTE`, `ABSTRACT`, `ACCELERATOR`, `ACCUM`, `ACCUMU`, `ACCUMUL`, `ACCUMULA`, `ACCUMULAT`, `ACCUMULATE`, `ACTIVE-FORM`, `ACTIVE-WINDOW`, `ADD`, `ADD-BUFFER`, `ADD-CALC-COLUMN`, `ADD-COLUMNS-FROM`, `ADD-EVENTS-PROCEDURE`, `ADD-FIELDS-FROM`, `ADD-FIRST`, `ADD-INDEX-FIELD`, `ADD-LAST`, `ADD-LIKE-COLUMN`, `ADD-LIKE-FIELD`, `ADD-LIKE-INDEX`, `ADD-NEW-FIELD`, `ADD-NEW-INDEX`, `ADD-SCHEMA-LOCATION`, `ADD-SUPER-PROCEDURE`, `ADM-DATA`, `ADVISE`, `ALERT-BOX`, `ALIAS`, `ALL`, `ALLOW-COLUMN-SEARCHING`, `ALLOW-REPLICATION`, `ALTER`, `ALWAYS-ON-TOP`, `AMBIG`, `AMBIGU`, `AMBIGUO`, `AMBIGUOU`, `AMBIGUOUS`, `ANALYZ`, `ANALYZE`, `AND`, `ANSI-ONLY`, `ANY`, `ANYWHERE`, `APPEND`, `APPL-ALERT`, `APPL-ALERT-`, `APPL-ALERT-B`, `APPL-ALERT-BO`, `APPL-ALERT-BOX`, `APPL-ALERT-BOXE`, `APPL-ALERT-BOXES`, `APPL-CONTEXT-ID`, `APPLICATION`, `APPLY`, `APPSERVER-INFO`, `APPSERVER-PASSWORD`, `APPSERVER-USERID`, `ARRAY-MESSAGE`, `AS`, `ASC`, `ASCE`, `ASCEN`, `ASCEND`, `ASCENDI`, `ASCENDIN`, `ASCENDING`, `ASK-OVERWRITE`, `ASSEMBLY`, `ASSIGN`, `ASYNC-REQUEST-COUNT`, `ASYNC-REQUEST-HANDLE`, `ASYNCHRONOUS`, `AT`, `ATTACHED-PAIRLIST`, `ATTR`, `ATTR-SPACE`, `ATTRI`, `ATTRIB`, `ATTRIBU`, `ATTRIBUT`, `AUDIT-CONTROL`, `AUDIT-ENABLED`, `AUDIT-EVENT-CONTEXT`, `AUDIT-POLICY`, `AUTHENTICATION-FAILED`, `AUTHORIZATION`, `AUTO-COMP`, `AUTO-COMPL`, `AUTO-COMPLE`, `AUTO-COMPLET`, `AUTO-COMPLETI`, `AUTO-COMPLETIO`, `AUTO-COMPLETION`, `AUTO-END-KEY`, `AUTO-ENDKEY`, `AUTO-GO`, `AUTO-IND`, `AUTO-INDE`, `AUTO-INDEN`, `AUTO-INDENT`, `AUTO-RESIZE`, `AUTO-RET`, `AUTO-RETU`, `AUTO-RETUR`, `AUTO-RETURN`, `AUTO-SYNCHRONIZE`, `AUTO-Z`, `AUTO-ZA`, `AUTO-ZAP`, `AUTOMATIC`, `AVAIL`, `AVAILA`, `AVAILAB`, `AVAILABL`, `AVAILABLE`, `AVAILABLE-FORMATS`, `AVE`, `AVER`, `AVERA`, `AVERAG`, `AVERAGE`, `AVG`, `BACK`, `BACKG`, `BACKGR`, `BACKGRO`, `BACKGROU`, `BACKGROUN`, `BACKGROUND`, `BACKWARD`, `BACKWARDS`, `BASE64-DECODE`, `BASE64-ENCODE`, `BASE-ADE`, `BASE-KEY`, `BATCH`, `BATCH-`, `BATCH-M`, `BATCH-MO`, `BATCH-MOD`, `BATCH-MODE`, `BATCH-SIZE`, `BEFORE-H`, `BEFORE-HI`, `BEFORE-HID`, `BEFORE-HIDE`, `BEGIN-EVENT-GROUP`, `BEGINS`, `BELL`, `BETWEEN`, `BGC`, `BGCO`, `BGCOL`, `BGCOLO`, `BGCOLOR`, `BIG-ENDIAN`, `BINARY`, `BIND`, `BIND-WHERE`, `BLANK`, `BLOCK-ITERATION-DISPLAY`, `BLOCK-LEVEL`, `BORDER-B`, `BORDER-BO`, `BORDER-BOT`, `BORDER-BOTT`, `BORDER-BOTTO`, `BORDER-BOTTOM-CHARS`, `BORDER-BOTTOM-P`, `BORDER-BOTTOM-PI`, `BORDER-BOTTOM-PIX`, `BORDER-BOTTOM-PIXE`, `BORDER-BOTTOM-PIXEL`, `BORDER-BOTTOM-PIXELS`, `BORDER-L`, `BORDER-LE`, `BORDER-LEF`, `BORDER-LEFT`, `BORDER-LEFT-`, `BORDER-LEFT-C`, `BORDER-LEFT-CH`, `BORDER-LEFT-CHA`, `BORDER-LEFT-CHAR`, `BORDER-LEFT-CHARS`, `BORDER-LEFT-P`, `BORDER-LEFT-PI`, `BORDER-LEFT-PIX`, `BORDER-LEFT-PIXE`, `BORDER-LEFT-PIXEL`, `BORDER-LEFT-PIXELS`, `BORDER-R`, `BORDER-RI`, `BORDER-RIG`, `BORDER-RIGH`, `BORDER-RIGHT`, `BORDER-RIGHT-`, `BORDER-RIGHT-C`, `BORDER-RIGHT-CH`, `BORDER-RIGHT-CHA`, `BORDER-RIGHT-CHAR`, `BORDER-RIGHT-CHARS`, `BORDER-RIGHT-P`, `BORDER-RIGHT-PI`, `BORDER-RIGHT-PIX`, `BORDER-RIGHT-PIXE`, `BORDER-RIGHT-PIXEL`, `BORDER-RIGHT-PIXELS`, `BORDER-T`, `BORDER-TO`, `BORDER-TOP`, `BORDER-TOP-`, `BORDER-TOP-C`, `BORDER-TOP-CH`, `BORDER-TOP-CHA`, `BORDER-TOP-CHAR`, `BORDER-TOP-CHARS`, `BORDER-TOP-P`, `BORDER-TOP-PI`, `BORDER-TOP-PIX`, `BORDER-TOP-PIXE`, `BORDER-TOP-PIXEL`, `BORDER-TOP-PIXELS`, `BOX`, `BOX-SELECT`, `BOX-SELECTA`, `BOX-SELECTAB`, `BOX-SELECTABL`, `BOX-SELECTABLE`, `BREAK`, `BROWSE`, `BUFFER`, `BUFFER-CHARS`, `BUFFER-COMPARE`, `BUFFER-COPY`, `BUFFER-CREATE`, `BUFFER-DELETE`, `BUFFER-FIELD`, `BUFFER-HANDLE`, `BUFFER-LINES`, `BUFFER-NAME`, `BUFFER-PARTITION-ID`, `BUFFER-RELEASE`, `BUFFER-VALUE`, `BUTTON`, `BUTTONS`, `BY`, `BY-POINTER`, `BY-VARIANT-POINTER`, `CACHE`, `CACHE-SIZE`, `CALL`, `CALL-NAME`, `CALL-TYPE`, `CAN-CREATE`, `CAN-DELETE`, `CAN-DO`, `CAN-DO-DOMAIN-SUPPORT`, `CAN-FIND`, `CAN-QUERY`, `CAN-READ`, `CAN-SET`, `CAN-WRITE`, `CANCEL-BREAK`, `CANCEL-BUTTON`, `CAPS`, `CAREFUL-PAINT`, `CASE`, `CASE-SEN`, `CASE-SENS`, `CASE-SENSI`, `CASE-SENSIT`, `CASE-SENSITI`, `CASE-SENSITIV`, `CASE-SENSITIVE`, `CAST`, `CATCH`, `CDECL`, `CENTER`, `CENTERE`, `CENTERED`, `CHAINED`, `CHARACTER`, `CHARACTER_LENGTH`, `CHARSET`, `CHECK`, `CHECKED`, `CHOOSE`, `CHR`, `CLASS`, `CLASS-TYPE`, `CLEAR`, `CLEAR-APPL-CONTEXT`, `CLEAR-LOG`, `CLEAR-SELECT`, `CLEAR-SELECTI`, `CLEAR-SELECTIO`, `CLEAR-SELECTION`, `CLEAR-SORT-ARROW`, `CLEAR-SORT-ARROWS`, `CLIENT-CONNECTION-ID`, `CLIENT-PRINCIPAL`, `CLIENT-TTY`, `CLIENT-TYPE`, `CLIENT-WORKSTATION`, `CLIPBOARD`, `CLOSE`, `CLOSE-LOG`, `CODE`, `CODEBASE-LOCATOR`, `CODEPAGE`, `CODEPAGE-CONVERT`, `COL`, `COL-OF`, `COLLATE`, `COLON`, `COLON-ALIGN`, `COLON-ALIGNE`, `COLON-ALIGNED`, `COLOR`, `COLOR-TABLE`, `COLU`, `COLUM`, `COLUMN`, `COLUMN-BGCOLOR`, `COLUMN-DCOLOR`, `COLUMN-FGCOLOR`, `COLUMN-FONT`, `COLUMN-LAB`, `COLUMN-LABE`, `COLUMN-LABEL`, `COLUMN-MOVABLE`, `COLUMN-OF`, `COLUMN-PFCOLOR`, `COLUMN-READ-ONLY`, `COLUMN-RESIZABLE`, `COLUMN-SCROLLING`, `COLUMNS`, `COM-HANDLE`, `COM-SELF`, `COMBO-BOX`, `COMMAND`, `COMPARES`, `COMPILE`, `COMPILER`, `COMPLETE`, `CONFIG-NAME`, `CONNECT`, `CONNECTED`, `CONSTRUCTOR`, `CONTAINS`, `CONTENTS`, `CONTEXT`, `CONTEXT-HELP`, `CONTEXT-HELP-FILE`, `CONTEXT-HELP-ID`, `CONTEXT-POPUP`, `CONTROL`, `CONTROL-BOX`, `CONTROL-FRAME`, `CONVERT`, `CONVERT-3D-COLORS`, `CONVERT-TO-OFFS`, `CONVERT-TO-OFFSE`, `CONVERT-TO-OFFSET`, `COPY-DATASET`, `COPY-LOB`, `COPY-SAX-ATTRIBUTES`, `COPY-TEMP-TABLE`, `COUNT`, `COUNT-OF`, `CPCASE`, `CPCOLL`, `CPINTERNAL`, `CPLOG`, `CPPRINT`, `CPRCODEIN`, `CPRCODEOUT`, `CPSTREAM`, `CPTERM`, `CRC-VALUE`, `CREATE`, `CREATE-LIKE`, `CREATE-LIKE-SEQUENTIAL`, `CREATE-NODE-NAMESPACE`, `CREATE-RESULT-LIST-ENTRY`, `CREATE-TEST-FILE`, `CURRENT`, `CURRENT-CHANGED`, `CURRENT-COLUMN`, `CURRENT-ENV`, `CURRENT-ENVI`, `CURRENT-ENVIR`, `CURRENT-ENVIRO`, `CURRENT-ENVIRON`, `CURRENT-ENVIRONM`, `CURRENT-ENVIRONME`, `CURRENT-ENVIRONMEN`, `CURRENT-ENVIRONMENT`, `CURRENT-ITERATION`, `CURRENT-LANG`, `CURRENT-LANGU`, `CURRENT-LANGUA`, `CURRENT-LANGUAG`, `CURRENT-LANGUAGE`, `CURRENT-QUERY`, `CURRENT-REQUEST-INFO`, `CURRENT-RESPONSE-INFO`, `CURRENT-RESULT-ROW`, `CURRENT-ROW-MODIFIED`, `CURRENT-VALUE`, `CURRENT-WINDOW`, `CURRENT_DATE`, `CURS`, `CURSO`, `CURSOR`, `CURSOR-CHAR`, `CURSOR-LINE`, `CURSOR-OFFSET`, `DATA-BIND`, `DATA-ENTRY-RET`, `DATA-ENTRY-RETU`, `DATA-ENTRY-RETUR`, `DATA-ENTRY-RETURN`, `DATA-REL`, `DATA-RELA`, `DATA-RELAT`, `DATA-RELATI`, `DATA-RELATIO`, `DATA-RELATION`, `DATA-SOURCE`, `DATA-SOURCE-COMPLETE-MAP`, `DATA-SOURCE-MODIFIED`, `DATA-SOURCE-ROWID`, `DATA-T`, `DATA-TY`, `DATA-TYP`, `DATA-TYPE`, `DATABASE`, `DATASERVERS`, `DATASET`, `DATASET-HANDLE`, `DATE`, `DATE-F`, `DATE-FO`, `DATE-FOR`, `DATE-FORM`, `DATE-FORMA`, `DATE-FORMAT`, `DAY`, `DB-CONTEXT`, `DB-REFERENCES`, `DBCODEPAGE`, `DBCOLLATION`, `DBNAME`, `DBPARAM`, `DBREST`, `DBRESTR`, `DBRESTRI`, `DBRESTRIC`, `DBRESTRICT`, `DBRESTRICTI`, `DBRESTRICTIO`, `DBRESTRICTION`, `DBRESTRICTIONS`, `DBTASKID`, `DBTYPE`, `DBVERS`, `DBVERSI`, `DBVERSIO`, `DBVERSION`, `DCOLOR`, `DDE`, `DDE-ERROR`, `DDE-I`, `DDE-ID`, `DDE-ITEM`, `DDE-NAME`, `DDE-TOPIC`, `DEBLANK`, `DEBU`, `DEBUG`, `DEBUG-ALERT`, `DEBUG-LIST`, `DEBUGGER`, `DECIMAL`, `DECIMALS`, `DECLARE`, `DECLARE-NAMESPACE`, `DECRYPT`, `DEFAULT`, `DEFAULT-B`, `DEFAULT-BU`, `DEFAULT-BUFFER-HANDLE`, `DEFAULT-BUT`, `DEFAULT-BUTT`, `DEFAULT-BUTTO`, `DEFAULT-BUTTON`, `DEFAULT-COMMIT`, `DEFAULT-EX`, `DEFAULT-EXT`, `DEFAULT-EXTE`, `DEFAULT-EXTEN`, `DEFAULT-EXTENS`, `DEFAULT-EXTENSI`, `DEFAULT-EXTENSIO`, `DEFAULT-EXTENSION`, `DEFAULT-NOXL`, `DEFAULT-NOXLA`, `DEFAULT-NOXLAT`, `DEFAULT-NOXLATE`, `DEFAULT-VALUE`, `DEFAULT-WINDOW`, `DEFINE`, `DEFINE-USER-EVENT-MANAGER`, `DEFINED`, `DEL`, `DELE`, `DELEGATE`, `DELET`, `DELETE PROCEDURE`, `DELETE`, `DELETE-CHAR`, `DELETE-CHARA`, `DELETE-CHARAC`, `DELETE-CHARACT`, `DELETE-CHARACTE`, `DELETE-CHARACTER`, `DELETE-CURRENT-ROW`, `DELETE-LINE`, `DELETE-RESULT-LIST-ENTRY`, `DELETE-SELECTED-ROW`, `DELETE-SELECTED-ROWS`, `DELIMITER`, `DESC`, `DESCE`, `DESCEN`, `DESCEND`, `DESCENDI`, `DESCENDIN`, `DESCENDING`, `DESELECT-FOCUSED-ROW`, `DESELECT-ROWS`, `DESELECT-SELECTED-ROW`, `DESELECTION`, `DESTRUCTOR`, `DIALOG-BOX`, `DICT`, `DICTI`, `DICTIO`, `DICTION`, `DICTIONA`, `DICTIONAR`, `DICTIONARY`, `DIR`, `DISABLE`, `DISABLE-AUTO-ZAP`, `DISABLE-DUMP-TRIGGERS`, `DISABLE-LOAD-TRIGGERS`, `DISABLED`, `DISCON`, `DISCONN`, `DISCONNE`, `DISCONNEC`, `DISCONNECT`, `DISP`, `DISPL`, `DISPLA`, `DISPLAY`, `DISPLAY-MESSAGE`, `DISPLAY-T`, `DISPLAY-TY`, `DISPLAY-TYP`, `DISPLAY-TYPE`, `DISTINCT`, `DO`, `DOMAIN-DESCRIPTION`, `DOMAIN-NAME`, `DOMAIN-TYPE`, `DOS`, `DOUBLE`, `DOWN`, `DRAG-ENABLED`, `DROP`, `DROP-DOWN`, `DROP-DOWN-LIST`, `DROP-FILE-NOTIFY`, `DROP-TARGET`, `DS-CLOSE-CURSOR`, `DSLOG-MANAGER`, `DUMP`, `DYNAMIC`, `DYNAMIC-ENUM`, `DYNAMIC-FUNCTION`, `DYNAMIC-INVOKE`, `EACH`, `ECHO`, `EDGE`, `EDGE-`, `EDGE-C`, `EDGE-CH`, `EDGE-CHA`, `EDGE-CHAR`, `EDGE-CHARS`, `EDGE-P`, `EDGE-PI`, `EDGE-PIX`, `EDGE-PIXE`, `EDGE-PIXEL`, `EDGE-PIXELS`, `EDIT-CAN-PASTE`, `EDIT-CAN-UNDO`, `EDIT-CLEAR`, `EDIT-COPY`, `EDIT-CUT`, `EDIT-PASTE`, `EDIT-UNDO`, `EDITING`, `EDITOR`, `ELSE`, `EMPTY`, `EMPTY-TEMP-TABLE`, `ENABLE`, `ENABLED-FIELDS`, `ENCODE`, `ENCRYPT`, `ENCRYPT-AUDIT-MAC-KEY`, `ENCRYPTION-SALT`, `END`, `END-DOCUMENT`, `END-ELEMENT`, `END-EVENT-GROUP`, `END-FILE-DROP`, `END-KEY`, `END-MOVE`, `END-RESIZE`, `END-ROW-RESIZE`, `END-USER-PROMPT`, `ENDKEY`, `ENTERED`, `ENTITY-EXPANSION-LIMIT`, `ENTRY`, `ENUM`, `EQ`, `ERROR`, `ERROR-COL`, `ERROR-COLU`, `ERROR-COLUM`, `ERROR-COLUMN`, `ERROR-ROW`, `ERROR-STACK-TRACE`, `ERROR-STAT`, `ERROR-STATU`, `ERROR-STATUS`, `ESCAPE`, `ETIME`, `EVENT`, `EVENT-GROUP-ID`, `EVENT-PROCEDURE`, `EVENT-PROCEDURE-CONTEXT`, `EVENT-T`, `EVENT-TY`, `EVENT-TYP`, `EVENT-TYPE`, `EVENTS`, `EXCEPT`, `EXCLUSIVE`, `EXCLUSIVE-`, `EXCLUSIVE-ID`, `EXCLUSIVE-L`, `EXCLUSIVE-LO`, `EXCLUSIVE-LOC`, `EXCLUSIVE-LOCK`, `EXCLUSIVE-WEB-USER`, `EXECUTE`, `EXISTS`, `EXP`, `EXPAND`, `EXPANDABLE`, `EXPLICIT`, `EXPORT`, `EXPORT-PRINCIPAL`, `EXTENDED`, `EXTENT`, `EXTERNAL`, `FALSE`, `FETCH`, `FETCH-SELECTED-ROW`, `FGC`, `FGCO`, `FGCOL`, `FGCOLO`, `FGCOLOR`, `FIELD`, `FIELDS`, `FILE`, `FILE-CREATE-DATE`, `FILE-CREATE-TIME`, `FILE-INFO`, `FILE-INFOR`, `FILE-INFORM`, `FILE-INFORMA`, `FILE-INFORMAT`, `FILE-INFORMATI`, `FILE-INFORMATIO`, `FILE-INFORMATION`, `FILE-MOD-DATE`, `FILE-MOD-TIME`, `FILE-NAME`, `FILE-OFF`, `FILE-OFFS`, `FILE-OFFSE`, `FILE-OFFSET`, `FILE-SIZE`, `FILE-TYPE`, `FILENAME`, `FILL`, `FILL-IN`, `FILLED`, `FILTERS`, `FINAL`, `FINALLY`, `FIND`, `FIND-BY-ROWID`, `FIND-CASE-SENSITIVE`, `FIND-CURRENT`, `FIND-FIRST`, `FIND-GLOBAL`, `FIND-LAST`, `FIND-NEXT-OCCURRENCE`, `FIND-PREV-OCCURRENCE`, `FIND-SELECT`, `FIND-UNIQUE`, `FIND-WRAP-AROUND`, `FINDER`, `FIRST`, `FIRST-ASYNCH-REQUEST`, `FIRST-CHILD`, `FIRST-COLUMN`, `FIRST-FORM`, `FIRST-OBJECT`, `FIRST-OF`, `FIRST-PROC`, `FIRST-PROCE`, `FIRST-PROCED`, `FIRST-PROCEDU`, `FIRST-PROCEDUR`, `FIRST-PROCEDURE`, `FIRST-SERVER`, `FIRST-TAB-I`, `FIRST-TAB-IT`, `FIRST-TAB-ITE`, `FIRST-TAB-ITEM`, `FIT-LAST-COLUMN`, `FIXED-ONLY`, `FLAT-BUTTON`, `FLOAT`, `FOCUS`, `FOCUSED-ROW`, `FOCUSED-ROW-SELECTED`, `FONT`, `FONT-TABLE`, `FOR`, `FORCE-FILE`, `FORE`, `FOREG`, `FOREGR`, `FOREGRO`, `FOREGROU`, `FOREGROUN`, `FOREGROUND`, `FORM INPUT`, `FORM`, `FORM-LONG-INPUT`, `FORMA`, `FORMAT`, `FORMATTE`, `FORMATTED`, `FORWARD`, `FORWARDS`, `FRAGMEN`, `FRAGMENT`, `FRAM`, `FRAME`, `FRAME-COL`, `FRAME-DB`, `FRAME-DOWN`, `FRAME-FIELD`, `FRAME-FILE`, `FRAME-INDE`, `FRAME-INDEX`, `FRAME-LINE`, `FRAME-NAME`, `FRAME-ROW`, `FRAME-SPA`, `FRAME-SPAC`, `FRAME-SPACI`, `FRAME-SPACIN`, `FRAME-SPACING`, `FRAME-VAL`, `FRAME-VALU`, `FRAME-VALUE`, `FRAME-X`, `FRAME-Y`, `FREQUENCY`, `FROM`, `FROM-C`, `FROM-CH`, `FROM-CHA`, `FROM-CHAR`, `FROM-CHARS`, `FROM-CUR`, `FROM-CURR`, `FROM-CURRE`, `FROM-CURREN`, `FROM-CURRENT`, `FROM-P`, `FROM-PI`, `FROM-PIX`, `FROM-PIXE`, `FROM-PIXEL`, `FROM-PIXELS`, `FULL-HEIGHT`, `FULL-HEIGHT-`, `FULL-HEIGHT-C`, `FULL-HEIGHT-CH`, `FULL-HEIGHT-CHA`, `FULL-HEIGHT-CHAR`, `FULL-HEIGHT-CHARS`, `FULL-HEIGHT-P`, `FULL-HEIGHT-PI`, `FULL-HEIGHT-PIX`, `FULL-HEIGHT-PIXE`, `FULL-HEIGHT-PIXEL`, `FULL-HEIGHT-PIXELS`, `FULL-PATHN`, `FULL-PATHNA`, `FULL-PATHNAM`, `FULL-PATHNAME`, `FULL-WIDTH`, `FULL-WIDTH-`, `FULL-WIDTH-C`, `FULL-WIDTH-CH`, `FULL-WIDTH-CHA`, `FULL-WIDTH-CHAR`, `FULL-WIDTH-CHARS`, `FULL-WIDTH-P`, `FULL-WIDTH-PI`, `FULL-WIDTH-PIX`, `FULL-WIDTH-PIXE`, `FULL-WIDTH-PIXEL`, `FULL-WIDTH-PIXELS`, `FUNCTION`, `FUNCTION-CALL-TYPE`, `GATEWAY`, `GATEWAYS`, `GE`, `GENERATE-MD5`, `GENERATE-PBE-KEY`, `GENERATE-PBE-SALT`, `GENERATE-RANDOM-KEY`, `GENERATE-UUID`, `GET`, `GET-ATTR-CALL-TYPE`, `GET-ATTRIBUTE-NODE`, `GET-BINARY-DATA`, `GET-BLUE`, `GET-BLUE-`, `GET-BLUE-V`, `GET-BLUE-VA`, `GET-BLUE-VAL`, `GET-BLUE-VALU`, `GET-BLUE-VALUE`, `GET-BROWSE-COLUMN`, `GET-BUFFER-HANDLE`, `GET-BYTE`, `GET-CALLBACK-PROC-CONTEXT`, `GET-CALLBACK-PROC-NAME`, `GET-CGI-LIST`, `GET-CGI-LONG-VALUE`, `GET-CGI-VALUE`, `GET-CLASS`, `GET-CODEPAGES`, `GET-COLLATIONS`, `GET-CONFIG-VALUE`, `GET-CURRENT`, `GET-DOUBLE`, `GET-DROPPED-FILE`, `GET-DYNAMIC`, `GET-ERROR-COLUMN`, `GET-ERROR-ROW`, `GET-FILE`, `GET-FILE-NAME`, `GET-FILE-OFFSE`, `GET-FILE-OFFSET`, `GET-FIRST`, `GET-FLOAT`, `GET-GREEN`, `GET-GREEN-`, `GET-GREEN-V`, `GET-GREEN-VA`, `GET-GREEN-VAL`, `GET-GREEN-VALU`, `GET-GREEN-VALUE`, `GET-INDEX-BY-NAMESPACE-NAME`, `GET-INDEX-BY-QNAME`, `GET-INT64`, `GET-ITERATION`, `GET-KEY-VAL`, `GET-KEY-VALU`, `GET-KEY-VALUE`, `GET-LAST`, `GET-LOCALNAME-BY-INDEX`, `GET-LONG`, `GET-MESSAGE`, `GET-NEXT`, `GET-NUMBER`, `GET-POINTER-VALUE`, `GET-PREV`, `GET-PRINTERS`, `GET-PROPERTY`, `GET-QNAME-BY-INDEX`, `GET-RED`, `GET-RED-`, `GET-RED-V`, `GET-RED-VA`, `GET-RED-VAL`, `GET-RED-VALU`, `GET-RED-VALUE`, `GET-REPOSITIONED-ROW`, `GET-RGB-VALUE`, `GET-SELECTED`, `GET-SELECTED-`, `GET-SELECTED-W`, `GET-SELECTED-WI`, `GET-SELECTED-WID`, `GET-SELECTED-WIDG`, `GET-SELECTED-WIDGE`, `GET-SELECTED-WIDGET`, `GET-SHORT`, `GET-SIGNATURE`, `GET-SIZE`, `GET-STRING`, `GET-TAB-ITEM`, `GET-TEXT-HEIGHT`, `GET-TEXT-HEIGHT-`, `GET-TEXT-HEIGHT-C`, `GET-TEXT-HEIGHT-CH`, `GET-TEXT-HEIGHT-CHA`, `GET-TEXT-HEIGHT-CHAR`, `GET-TEXT-HEIGHT-CHARS`, `GET-TEXT-HEIGHT-P`, `GET-TEXT-HEIGHT-PI`, `GET-TEXT-HEIGHT-PIX`, `GET-TEXT-HEIGHT-PIXE`, `GET-TEXT-HEIGHT-PIXEL`, `GET-TEXT-HEIGHT-PIXELS`, `GET-TEXT-WIDTH`, `GET-TEXT-WIDTH-`, `GET-TEXT-WIDTH-C`, `GET-TEXT-WIDTH-CH`, `GET-TEXT-WIDTH-CHA`, `GET-TEXT-WIDTH-CHAR`, `GET-TEXT-WIDTH-CHARS`, `GET-TEXT-WIDTH-P`, `GET-TEXT-WIDTH-PI`, `GET-TEXT-WIDTH-PIX`, `GET-TEXT-WIDTH-PIXE`, `GET-TEXT-WIDTH-PIXEL`, `GET-TEXT-WIDTH-PIXELS`, `GET-TYPE-BY-INDEX`, `GET-TYPE-BY-NAMESPACE-NAME`, `GET-TYPE-BY-QNAME`, `GET-UNSIGNED-LONG`, `GET-UNSIGNED-SHORT`, `GET-URI-BY-INDEX`, `GET-VALUE-BY-INDEX`, `GET-VALUE-BY-NAMESPACE-NAME`, `GET-VALUE-BY-QNAME`, `GET-WAIT-STATE`, `GETBYTE`, `GLOBAL`, `GO-ON`, `GO-PEND`, `GO-PENDI`, `GO-PENDIN`, `GO-PENDING`, `GRANT`, `GRAPHIC-E`, `GRAPHIC-ED`, `GRAPHIC-EDG`, `GRAPHIC-EDGE`, `GRID-FACTOR-H`, `GRID-FACTOR-HO`, `GRID-FACTOR-HOR`, `GRID-FACTOR-HORI`, `GRID-FACTOR-HORIZ`, `GRID-FACTOR-HORIZO`, `GRID-FACTOR-HORIZON`, `GRID-FACTOR-HORIZONT`, `GRID-FACTOR-HORIZONTA`, `GRID-FACTOR-HORIZONTAL`, `GRID-FACTOR-V`, `GRID-FACTOR-VE`, `GRID-FACTOR-VER`, `GRID-FACTOR-VERT`, `GRID-FACTOR-VERTI`, `GRID-FACTOR-VERTIC`, `GRID-FACTOR-VERTICA`, `GRID-FACTOR-VERTICAL`, `GRID-SNAP`, `GRID-UNIT-HEIGHT`, `GRID-UNIT-HEIGHT-`, `GRID-UNIT-HEIGHT-C`, `GRID-UNIT-HEIGHT-CH`, `GRID-UNIT-HEIGHT-CHA`, `GRID-UNIT-HEIGHT-CHARS`, `GRID-UNIT-HEIGHT-P`, `GRID-UNIT-HEIGHT-PI`, `GRID-UNIT-HEIGHT-PIX`, `GRID-UNIT-HEIGHT-PIXE`, `GRID-UNIT-HEIGHT-PIXEL`, `GRID-UNIT-HEIGHT-PIXELS`, `GRID-UNIT-WIDTH`, `GRID-UNIT-WIDTH-`, `GRID-UNIT-WIDTH-C`, `GRID-UNIT-WIDTH-CH`, `GRID-UNIT-WIDTH-CHA`, `GRID-UNIT-WIDTH-CHAR`, `GRID-UNIT-WIDTH-CHARS`, `GRID-UNIT-WIDTH-P`, `GRID-UNIT-WIDTH-PI`, `GRID-UNIT-WIDTH-PIX`, `GRID-UNIT-WIDTH-PIXE`, `GRID-UNIT-WIDTH-PIXEL`, `GRID-UNIT-WIDTH-PIXELS`, `GRID-VISIBLE`, `GROUP`, `GT`, `GUID`, `HANDLE`, `HANDLER`, `HAS-RECORDS`, `HAVING`, `HEADER`, `HEIGHT`, `HEIGHT-`, `HEIGHT-C`, `HEIGHT-CH`, `HEIGHT-CHA`, `HEIGHT-CHAR`, `HEIGHT-CHARS`, `HEIGHT-P`, `HEIGHT-PI`, `HEIGHT-PIX`, `HEIGHT-PIXE`, `HEIGHT-PIXEL`, `HEIGHT-PIXELS`, `HELP`, `HEX-DECODE`, `HEX-ENCODE`, `HIDDEN`, `HIDE`, `HORI`, `HORIZ`, `HORIZO`, `HORIZON`, `HORIZONT`, `HORIZONTA`, `HORIZONTAL`, `HOST-BYTE-ORDER`, `HTML-CHARSET`, `HTML-END-OF-LINE`, `HTML-END-OF-PAGE`, `HTML-FRAME-BEGIN`, `HTML-FRAME-END`, `HTML-HEADER-BEGIN`, `HTML-HEADER-END`, `HTML-TITLE-BEGIN`, `HTML-TITLE-END`, `HWND`, `ICON`, `IF`, `IMAGE`, `IMAGE-DOWN`, `IMAGE-INSENSITIVE`, `IMAGE-SIZE`, `IMAGE-SIZE-C`, `IMAGE-SIZE-CH`, `IMAGE-SIZE-CHA`, `IMAGE-SIZE-CHAR`, `IMAGE-SIZE-CHARS`, `IMAGE-SIZE-P`, `IMAGE-SIZE-PI`, `IMAGE-SIZE-PIX`, `IMAGE-SIZE-PIXE`, `IMAGE-SIZE-PIXEL`, `IMAGE-SIZE-PIXELS`, `IMAGE-UP`, `IMMEDIATE-DISPLAY`, `IMPLEMENTS`, `IMPORT`, `IMPORT-PRINCIPAL`, `IN`, `IN-HANDLE`, `INCREMENT-EXCLUSIVE-ID`, `INDEX`, `INDEX-HINT`, `INDEX-INFORMATION`, `INDEXED-REPOSITION`, `INDICATOR`, `INFO`, `INFOR`, `INFORM`, `INFORMA`, `INFORMAT`, `INFORMATI`, `INFORMATIO`, `INFORMATION`, `INHERIT-BGC`, `INHERIT-BGCO`, `INHERIT-BGCOL`, `INHERIT-BGCOLO`, `INHERIT-BGCOLOR`, `INHERIT-FGC`, `INHERIT-FGCO`, `INHERIT-FGCOL`, `INHERIT-FGCOLO`, `INHERIT-FGCOLOR`, `INHERITS`, `INIT`, `INITI`, `INITIA`, `INITIAL`, `INITIAL-DIR`, `INITIAL-FILTER`, `INITIALIZE-DOCUMENT-TYPE`, `INITIATE`, `INNER-CHARS`, `INNER-LINES`, `INPUT`, `INPUT-O`, `INPUT-OU`, `INPUT-OUT`, `INPUT-OUTP`, `INPUT-OUTPU`, `INPUT-OUTPUT`, `INPUT-VALUE`, `INSERT`, `INSERT-ATTRIBUTE`, `INSERT-B`, `INSERT-BA`, `INSERT-BAC`, `INSERT-BACK`, `INSERT-BACKT`, `INSERT-BACKTA`, `INSERT-BACKTAB`, `INSERT-FILE`, `INSERT-ROW`, `INSERT-STRING`, `INSERT-T`, `INSERT-TA`, `INSERT-TAB`, `INT64`, `INT`, `INTEGER`, `INTERFACE`, `INTERNAL-ENTRIES`, `INTO`, `INVOKE`, `IS`, `IS-ATTR`, `IS-ATTR-`, `IS-ATTR-S`, `IS-ATTR-SP`, `IS-ATTR-SPA`, `IS-ATTR-SPAC`, `IS-ATTR-SPACE`, `IS-CLASS`, `IS-JSON`, `IS-LEAD-BYTE`, `IS-OPEN`, `IS-PARAMETER-SET`, `IS-PARTITIONED`, `IS-ROW-SELECTED`, `IS-SELECTED`, `IS-XML`, `ITEM`, `ITEMS-PER-ROW`, `JOIN`, `JOIN-BY-SQLDB`, `KBLABEL`, `KEEP-CONNECTION-OPEN`, `KEEP-FRAME-Z`, `KEEP-FRAME-Z-`, `KEEP-FRAME-Z-O`, `KEEP-FRAME-Z-OR`, `KEEP-FRAME-Z-ORD`, `KEEP-FRAME-Z-ORDE`, `KEEP-FRAME-Z-ORDER`, `KEEP-MESSAGES`, `KEEP-SECURITY-CACHE`, `KEEP-TAB-ORDER`, `KEY`, `KEY-CODE`, `KEY-FUNC`, `KEY-FUNCT`, `KEY-FUNCTI`, `KEY-FUNCTIO`, `KEY-FUNCTION`, `KEY-LABEL`, `KEYCODE`, `KEYFUNC`, `KEYFUNCT`, `KEYFUNCTI`, `KEYFUNCTIO`, `KEYFUNCTION`, `KEYLABEL`, `KEYS`, `KEYWORD`, `KEYWORD-ALL`, `LABEL`, `LABEL-BGC`, `LABEL-BGCO`, `LABEL-BGCOL`, `LABEL-BGCOLO`, `LABEL-BGCOLOR`, `LABEL-DC`, `LABEL-DCO`, `LABEL-DCOL`, `LABEL-DCOLO`, `LABEL-DCOLOR`, `LABEL-FGC`, `LABEL-FGCO`, `LABEL-FGCOL`, `LABEL-FGCOLO`, `LABEL-FGCOLOR`, `LABEL-FONT`, `LABEL-PFC`, `LABEL-PFCO`, `LABEL-PFCOL`, `LABEL-PFCOLO`, `LABEL-PFCOLOR`, `LABELS`, `LABELS-HAVE-COLONS`, `LANDSCAPE`, `LANGUAGE`, `LANGUAGES`, `LARGE`, `LARGE-TO-SMALL`, `LAST`, `LAST-ASYNCH-REQUEST`, `LAST-BATCH`, `LAST-CHILD`, `LAST-EVEN`, `LAST-EVENT`, `LAST-FORM`, `LAST-KEY`, `LAST-OBJECT`, `LAST-OF`, `LAST-PROCE`, `LAST-PROCED`, `LAST-PROCEDU`, `LAST-PROCEDUR`, `LAST-PROCEDURE`, `LAST-SERVER`, `LAST-TAB-I`, `LAST-TAB-IT`, `LAST-TAB-ITE`, `LAST-TAB-ITEM`, `LASTKEY`, `LC`, `LDBNAME`, `LE`, `LEAVE`, `LEFT-ALIGN`, `LEFT-ALIGNE`, `LEFT-ALIGNED`, `LEFT-TRIM`, `LENGTH`, `LIBRARY`, `LIKE`, `LIKE-SEQUENTIAL`, `LINE`, `LINE-COUNT`, `LINE-COUNTE`, `LINE-COUNTER`, `LIST-EVENTS`, `LIST-ITEM-PAIRS`, `LIST-ITEMS`, `LIST-PROPERTY-NAMES`, `LIST-QUERY-ATTRS`, `LIST-SET-ATTRS`, `LIST-WIDGETS`, `LISTI`, `LISTIN`, `LISTING`, `LITERAL-QUESTION`, `LITTLE-ENDIAN`, `LOAD`, `LOAD-DOMAINS`, `LOAD-ICON`, `LOAD-IMAGE`, `LOAD-IMAGE-DOWN`, `LOAD-IMAGE-INSENSITIVE`, `LOAD-IMAGE-UP`, `LOAD-MOUSE-P`, `LOAD-MOUSE-PO`, `LOAD-MOUSE-POI`, `LOAD-MOUSE-POIN`, `LOAD-MOUSE-POINT`, `LOAD-MOUSE-POINTE`, `LOAD-MOUSE-POINTER`, `LOAD-PICTURE`, `LOAD-SMALL-ICON`, `LOCAL-NAME`, `LOCAL-VERSION-INFO`, `LOCATOR-COLUMN-NUMBER`, `LOCATOR-LINE-NUMBER`, `LOCATOR-PUBLIC-ID`, `LOCATOR-SYSTEM-ID`, `LOCATOR-TYPE`, `LOCK-REGISTRATION`, `LOCKED`, `LOG`, `LOG-AUDIT-EVENT`, `LOG-MANAGER`, `LOGICAL`, `LOGIN-EXPIRATION-TIMESTAMP`, `LOGIN-HOST`, `LOGIN-STATE`, `LOGOUT`, `LONGCHAR`, `LOOKAHEAD`, `LOOKUP`, `LT`, `MACHINE-CLASS`, `MANDATORY`, `MANUAL-HIGHLIGHT`, `MAP`, `MARGIN-EXTRA`, `MARGIN-HEIGHT`, `MARGIN-HEIGHT-`, `MARGIN-HEIGHT-C`, `MARGIN-HEIGHT-CH`, `MARGIN-HEIGHT-CHA`, `MARGIN-HEIGHT-CHAR`, `MARGIN-HEIGHT-CHARS`, `MARGIN-HEIGHT-P`, `MARGIN-HEIGHT-PI`, `MARGIN-HEIGHT-PIX`, `MARGIN-HEIGHT-PIXE`, `MARGIN-HEIGHT-PIXEL`, `MARGIN-HEIGHT-PIXELS`, `MARGIN-WIDTH`, `MARGIN-WIDTH-`, `MARGIN-WIDTH-C`, `MARGIN-WIDTH-CH`, `MARGIN-WIDTH-CHA`, `MARGIN-WIDTH-CHAR`, `MARGIN-WIDTH-CHARS`, `MARGIN-WIDTH-P`, `MARGIN-WIDTH-PI`, `MARGIN-WIDTH-PIX`, `MARGIN-WIDTH-PIXE`, `MARGIN-WIDTH-PIXEL`, `MARGIN-WIDTH-PIXELS`, `MARK-NEW`, `MARK-ROW-STATE`, `MATCHES`, `MAX`, `MAX-BUTTON`, `MAX-CHARS`, `MAX-DATA-GUESS`, `MAX-HEIGHT`, `MAX-HEIGHT-C`, `MAX-HEIGHT-CH`, `MAX-HEIGHT-CHA`, `MAX-HEIGHT-CHAR`, `MAX-HEIGHT-CHARS`, `MAX-HEIGHT-P`, `MAX-HEIGHT-PI`, `MAX-HEIGHT-PIX`, `MAX-HEIGHT-PIXE`, `MAX-HEIGHT-PIXEL`, `MAX-HEIGHT-PIXELS`, `MAX-ROWS`, `MAX-SIZE`, `MAX-VAL`, `MAX-VALU`, `MAX-VALUE`, `MAX-WIDTH`, `MAX-WIDTH-`, `MAX-WIDTH-C`, `MAX-WIDTH-CH`, `MAX-WIDTH-CHA`, `MAX-WIDTH-CHAR`, `MAX-WIDTH-CHARS`, `MAX-WIDTH-P`, `MAX-WIDTH-PI`, `MAX-WIDTH-PIX`, `MAX-WIDTH-PIXE`, `MAX-WIDTH-PIXEL`, `MAX-WIDTH-PIXELS`, `MAXI`, `MAXIM`, `MAXIMIZE`, `MAXIMU`, `MAXIMUM`, `MAXIMUM-LEVEL`, `MD5-DIGEST`, `MEMBER`, `MEMPTR-TO-NODE-VALUE`, `MENU`, `MENU-BAR`, `MENU-ITEM`, `MENU-K`, `MENU-KE`, `MENU-KEY`, `MENU-M`, `MENU-MO`, `MENU-MOU`, `MENU-MOUS`, `MENU-MOUSE`, `MENUBAR`, `MERGE-BY-FIELD`, `MESSAGE`, `MESSAGE-AREA`, `MESSAGE-AREA-FONT`, `MESSAGE-LINES`, `METHOD`, `MIN`, `MIN-BUTTON`, `MIN-COLUMN-WIDTH-C`, `MIN-COLUMN-WIDTH-CH`, `MIN-COLUMN-WIDTH-CHA`, `MIN-COLUMN-WIDTH-CHAR`, `MIN-COLUMN-WIDTH-CHARS`, `MIN-COLUMN-WIDTH-P`, `MIN-COLUMN-WIDTH-PI`, `MIN-COLUMN-WIDTH-PIX`, `MIN-COLUMN-WIDTH-PIXE`, `MIN-COLUMN-WIDTH-PIXEL`, `MIN-COLUMN-WIDTH-PIXELS`, `MIN-HEIGHT`, `MIN-HEIGHT-`, `MIN-HEIGHT-C`, `MIN-HEIGHT-CH`, `MIN-HEIGHT-CHA`, `MIN-HEIGHT-CHAR`, `MIN-HEIGHT-CHARS`, `MIN-HEIGHT-P`, `MIN-HEIGHT-PI`, `MIN-HEIGHT-PIX`, `MIN-HEIGHT-PIXE`, `MIN-HEIGHT-PIXEL`, `MIN-HEIGHT-PIXELS`, `MIN-SIZE`, `MIN-VAL`, `MIN-VALU`, `MIN-VALUE`, `MIN-WIDTH`, `MIN-WIDTH-`, `MIN-WIDTH-C`, `MIN-WIDTH-CH`, `MIN-WIDTH-CHA`, `MIN-WIDTH-CHAR`, `MIN-WIDTH-CHARS`, `MIN-WIDTH-P`, `MIN-WIDTH-PI`, `MIN-WIDTH-PIX`, `MIN-WIDTH-PIXE`, `MIN-WIDTH-PIXEL`, `MIN-WIDTH-PIXELS`, `MINI`, `MINIM`, `MINIMU`, `MINIMUM`, `MOD`, `MODIFIED`, `MODU`, `MODUL`, `MODULO`, `MONTH`, `MOUSE`, `MOUSE-P`, `MOUSE-PO`, `MOUSE-POI`, `MOUSE-POIN`, `MOUSE-POINT`, `MOUSE-POINTE`, `MOUSE-POINTER`, `MOVABLE`, `MOVE-AFTER`, `MOVE-AFTER-`, `MOVE-AFTER-T`, `MOVE-AFTER-TA`, `MOVE-AFTER-TAB`, `MOVE-AFTER-TAB-`, `MOVE-AFTER-TAB-I`, `MOVE-AFTER-TAB-IT`, `MOVE-AFTER-TAB-ITE`, `MOVE-AFTER-TAB-ITEM`, `MOVE-BEFOR`, `MOVE-BEFORE`, `MOVE-BEFORE-`, `MOVE-BEFORE-T`, `MOVE-BEFORE-TA`, `MOVE-BEFORE-TAB`, `MOVE-BEFORE-TAB-`, `MOVE-BEFORE-TAB-I`, `MOVE-BEFORE-TAB-IT`, `MOVE-BEFORE-TAB-ITE`, `MOVE-BEFORE-TAB-ITEM`, `MOVE-COL`, `MOVE-COLU`, `MOVE-COLUM`, `MOVE-COLUMN`, `MOVE-TO-B`, `MOVE-TO-BO`, `MOVE-TO-BOT`, `MOVE-TO-BOTT`, `MOVE-TO-BOTTO`, `MOVE-TO-BOTTOM`, `MOVE-TO-EOF`, `MOVE-TO-T`, `MOVE-TO-TO`, `MOVE-TO-TOP`, `MPE`, `MTIME`, `MULTI-COMPILE`, `MULTIPLE`, `MULTIPLE-KEY`, `MULTITASKING-INTERVAL`, `MUST-EXIST`, `NAME`, `NAMESPACE-PREFIX`, `NAMESPACE-URI`, `NATIVE`, `NE`, `NEEDS-APPSERVER-PROMPT`, `NEEDS-PROMPT`, `NEW`, `NEW-INSTANCE`, `NEW-ROW`, `NEXT`, `NEXT-COLUMN`, `NEXT-PROMPT`, `NEXT-ROWID`, `NEXT-SIBLING`, `NEXT-TAB-I`, `NEXT-TAB-IT`, `NEXT-TAB-ITE`, `NEXT-TAB-ITEM`, `NEXT-VALUE`, `NO`, `NO-APPLY`, `NO-ARRAY-MESSAGE`, `NO-ASSIGN`, `NO-ATTR`, `NO-ATTR-`, `NO-ATTR-L`, `NO-ATTR-LI`, `NO-ATTR-LIS`, `NO-ATTR-LIST`, `NO-ATTR-S`, `NO-ATTR-SP`, `NO-ATTR-SPA`, `NO-ATTR-SPAC`, `NO-ATTR-SPACE`, `NO-AUTO-VALIDATE`, `NO-BIND-WHERE`, `NO-BOX`, `NO-CONSOLE`, `NO-CONVERT`, `NO-CONVERT-3D-COLORS`, `NO-CURRENT-VALUE`, `NO-DEBUG`, `NO-DRAG`, `NO-ECHO`, `NO-EMPTY-SPACE`, `NO-ERROR`, `NO-F`, `NO-FI`, `NO-FIL`, `NO-FILL`, `NO-FOCUS`, `NO-HELP`, `NO-HIDE`, `NO-INDEX-HINT`, `NO-INHERIT-BGC`, `NO-INHERIT-BGCO`, `NO-INHERIT-BGCOLOR`, `NO-INHERIT-FGC`, `NO-INHERIT-FGCO`, `NO-INHERIT-FGCOL`, `NO-INHERIT-FGCOLO`, `NO-INHERIT-FGCOLOR`, `NO-JOIN-BY-SQLDB`, `NO-LABE`, `NO-LABELS`, `NO-LOBS`, `NO-LOCK`, `NO-LOOKAHEAD`, `NO-MAP`, `NO-MES`, `NO-MESS`, `NO-MESSA`, `NO-MESSAG`, `NO-MESSAGE`, `NO-PAUSE`, `NO-PREFE`, `NO-PREFET`, `NO-PREFETC`, `NO-PREFETCH`, `NO-ROW-MARKERS`, `NO-SCROLLBAR-VERTICAL`, `NO-SEPARATE-CONNECTION`, `NO-SEPARATORS`, `NO-TAB-STOP`, `NO-UND`, `NO-UNDE`, `NO-UNDER`, `NO-UNDERL`, `NO-UNDERLI`, `NO-UNDERLIN`, `NO-UNDERLINE`, `NO-UNDO`, `NO-VAL`, `NO-VALI`, `NO-VALID`, `NO-VALIDA`, `NO-VALIDAT`, `NO-VALIDATE`, `NO-WAIT`, `NO-WORD-WRAP`, `NODE-VALUE-TO-MEMPTR`, `NONAMESPACE-SCHEMA-LOCATION`, `NONE`, `NORMALIZE`, `NOT`, `NOT-ACTIVE`, `NOW`, `NULL`, `NUM-ALI`, `NUM-ALIA`, `NUM-ALIAS`, `NUM-ALIASE`, `NUM-ALIASES`, `NUM-BUFFERS`, `NUM-BUT`, `NUM-BUTT`, `NUM-BUTTO`, `NUM-BUTTON`, `NUM-BUTTONS`, `NUM-COL`, `NUM-COLU`, `NUM-COLUM`, `NUM-COLUMN`, `NUM-COLUMNS`, `NUM-COPIES`, `NUM-DBS`, `NUM-DROPPED-FILES`, `NUM-ENTRIES`, `NUM-FIELDS`, `NUM-FORMATS`, `NUM-ITEMS`, `NUM-ITERATIONS`, `NUM-LINES`, `NUM-LOCKED-COL`, `NUM-LOCKED-COLU`, `NUM-LOCKED-COLUM`, `NUM-LOCKED-COLUMN`, `NUM-LOCKED-COLUMNS`, `NUM-MESSAGES`, `NUM-PARAMETERS`, `NUM-REFERENCES`, `NUM-REPLACED`, `NUM-RESULTS`, `NUM-SELECTED`, `NUM-SELECTED-`, `NUM-SELECTED-ROWS`, `NUM-SELECTED-W`, `NUM-SELECTED-WI`, `NUM-SELECTED-WID`, `NUM-SELECTED-WIDG`, `NUM-SELECTED-WIDGE`, `NUM-SELECTED-WIDGET`, `NUM-SELECTED-WIDGETS`, `NUM-TABS`, `NUM-TO-RETAIN`, `NUM-VISIBLE-COLUMNS`, `NUMERIC`, `NUMERIC-F`, `NUMERIC-FO`, `NUMERIC-FOR`, `NUMERIC-FORM`, `NUMERIC-FORMA`, `NUMERIC-FORMAT`, `OCTET-LENGTH`, `OF`, `OFF`, `OK`, `OK-CANCEL`, `OLD`, `ON`, `ON-FRAME`, `ON-FRAME-`, `ON-FRAME-B`, `ON-FRAME-BO`, `ON-FRAME-BOR`, `ON-FRAME-BORD`, `ON-FRAME-BORDE`, `ON-FRAME-BORDER`, `OPEN`, `OPSYS`, `OPTION`, `OR`, `ORDERED-JOIN`, `ORDINAL`, `OS-APPEND`, `OS-COMMAND`, `OS-COPY`, `OS-CREATE-DIR`, `OS-DELETE`, `OS-DIR`, `OS-DRIVE`, `OS-DRIVES`, `OS-ERROR`, `OS-GETENV`, `OS-RENAME`, `OTHERWISE`, `OUTPUT`, `OVERLAY`, `OVERRIDE`, `OWNER`, `PAGE`, `PAGE-BOT`, `PAGE-BOTT`, `PAGE-BOTTO`, `PAGE-BOTTOM`, `PAGE-NUM`, `PAGE-NUMB`, `PAGE-NUMBE`, `PAGE-NUMBER`, `PAGE-SIZE`, `PAGE-TOP`, `PAGE-WID`, `PAGE-WIDT`, `PAGE-WIDTH`, `PAGED`, `PARAM`, `PARAME`, `PARAMET`, `PARAMETE`, `PARAMETER`, `PARENT`, `PARSE-STATUS`, `PARTIAL-KEY`, `PASCAL`, `PASSWORD-FIELD`, `PATHNAME`, `PAUSE`, `PBE-HASH-ALG`, `PBE-HASH-ALGO`, `PBE-HASH-ALGOR`, `PBE-HASH-ALGORI`, `PBE-HASH-ALGORIT`, `PBE-HASH-ALGORITH`, `PBE-HASH-ALGORITHM`, `PBE-KEY-ROUNDS`, `PDBNAME`, `PERSIST`, `PERSISTE`, `PERSISTEN`, `PERSISTENT`, `PERSISTENT-CACHE-DISABLED`, `PFC`, `PFCO`, `PFCOL`, `PFCOLO`, `PFCOLOR`, `PIXELS`, `PIXELS-PER-COL`, `PIXELS-PER-COLU`, `PIXELS-PER-COLUM`, `PIXELS-PER-COLUMN`, `PIXELS-PER-ROW`, `POPUP-M`, `POPUP-ME`, `POPUP-MEN`, `POPUP-MENU`, `POPUP-O`, `POPUP-ON`, `POPUP-ONL`, `POPUP-ONLY`, `PORTRAIT`, `POSITION`, `PRECISION`, `PREFER-DATASET`, `PREPARE-STRING`, `PREPARED`, `PREPROC`, `PREPROCE`, `PREPROCES`, `PREPROCESS`, `PRESEL`, `PRESELE`, `PRESELEC`, `PRESELECT`, `PREV`, `PREV-COLUMN`, `PREV-SIBLING`, `PREV-TAB-I`, `PREV-TAB-IT`, `PREV-TAB-ITE`, `PREV-TAB-ITEM`, `PRIMARY`, `PRINTER`, `PRINTER-CONTROL-HANDLE`, `PRINTER-HDC`, `PRINTER-NAME`, `PRINTER-PORT`, `PRINTER-SETUP`, `PRIVATE`, `PRIVATE-D`, `PRIVATE-DA`, `PRIVATE-DAT`, `PRIVATE-DATA`, `PRIVILEGES`, `PROC-HA`, `PROC-HAN`, `PROC-HAND`, `PROC-HANDL`, `PROC-HANDLE`, `PROC-ST`, `PROC-STA`, `PROC-STAT`, `PROC-STATU`, `PROC-STATUS`, `PROC-TEXT`, `PROC-TEXT-BUFFER`, `PROCE`, `PROCED`, `PROCEDU`, `PROCEDUR`, `PROCEDURE`, `PROCEDURE-CALL-TYPE`, `PROCEDURE-TYPE`, `PROCESS`, `PROFILER`, `PROGRAM-NAME`, `PROGRESS`, `PROGRESS-S`, `PROGRESS-SO`, `PROGRESS-SOU`, `PROGRESS-SOUR`, `PROGRESS-SOURC`, `PROGRESS-SOURCE`, `PROMPT`, `PROMPT-F`, `PROMPT-FO`, `PROMPT-FOR`, `PROMSGS`, `PROPATH`, `PROPERTY`, `PROTECTED`, `PROVERS`, `PROVERSI`, `PROVERSIO`, `PROVERSION`, `PROXY`, `PROXY-PASSWORD`, `PROXY-USERID`, `PUBLIC`, `PUBLIC-ID`, `PUBLISH`, `PUBLISHED-EVENTS`, `PUT`, `PUT-BYTE`, `PUT-DOUBLE`, `PUT-FLOAT`, `PUT-INT64`, `PUT-KEY-VAL`, `PUT-KEY-VALU`, `PUT-KEY-VALUE`, `PUT-LONG`, `PUT-SHORT`, `PUT-STRING`, `PUT-UNSIGNED-LONG`, `PUTBYTE`, `QUERY`, `QUERY-CLOSE`, `QUERY-OFF-END`, `QUERY-OPEN`, `QUERY-PREPARE`, `QUERY-TUNING`, `QUESTION`, `QUIT`, `QUOTER`, `R-INDEX`, `RADIO-BUTTONS`, `RADIO-SET`, `RANDOM`, `RAW`, `RAW-TRANSFER`, `RCODE-INFO`, `RCODE-INFOR`, `RCODE-INFORM`, `RCODE-INFORMA`, `RCODE-INFORMAT`, `RCODE-INFORMATI`, `RCODE-INFORMATIO`, `RCODE-INFORMATION`, `READ-AVAILABLE`, `READ-EXACT-NUM`, `READ-FILE`, `READ-JSON`, `READ-ONLY`, `READ-XML`, `READ-XMLSCHEMA`, `READKEY`, `REAL`, `RECID`, `RECORD-LENGTH`, `RECT`, `RECTA`, `RECTAN`, `RECTANG`, `RECTANGL`, `RECTANGLE`, `RECURSIVE`, `REFERENCE-ONLY`, `REFRESH`, `REFRESH-AUDIT-POLICY`, `REFRESHABLE`, `REGISTER-DOMAIN`, `RELEASE`, `REMOTE`, `REMOVE-EVENTS-PROCEDURE`, `REMOVE-SUPER-PROCEDURE`, `REPEAT`, `REPLACE`, `REPLACE-SELECTION-TEXT`, `REPOSITION`, `REPOSITION-BACKWARD`, `REPOSITION-FORWARD`, `REPOSITION-MODE`, `REPOSITION-TO-ROW`, `REPOSITION-TO-ROWID`, `REQUEST`, `REQUEST-INFO`, `RESET`, `RESIZA`, `RESIZAB`, `RESIZABL`, `RESIZABLE`, `RESIZE`, `RESPONSE-INFO`, `RESTART-ROW`, `RESTART-ROWID`, `RETAIN`, `RETAIN-SHAPE`, `RETRY`, `RETRY-CANCEL`, `RETURN`, `RETURN-ALIGN`, `RETURN-ALIGNE`, `RETURN-INS`, `RETURN-INSE`, `RETURN-INSER`, `RETURN-INSERT`, `RETURN-INSERTE`, `RETURN-INSERTED`, `RETURN-TO-START-DI`, `RETURN-TO-START-DIR`, `RETURN-VAL`, `RETURN-VALU`, `RETURN-VALUE`, `RETURN-VALUE-DATA-TYPE`, `RETURNS`, `REVERSE-FROM`, `REVERT`, `REVOKE`, `RGB-VALUE`, `RIGHT-ALIGNED`, `RIGHT-TRIM`, `ROLES`, `ROUND`, `ROUTINE-LEVEL`, `ROW`, `ROW-HEIGHT-CHARS`, `ROW-HEIGHT-PIXELS`, `ROW-MARKERS`, `ROW-OF`, `ROW-RESIZABLE`, `ROWID`, `RULE`, `RUN`, `RUN-PROCEDURE`, `SAVE CACHE`, `SAVE`, `SAVE-AS`, `SAVE-FILE`, `SAX-COMPLE`, `SAX-COMPLET`, `SAX-COMPLETE`, `SAX-PARSE`, `SAX-PARSE-FIRST`, `SAX-PARSE-NEXT`, `SAX-PARSER-ERROR`, `SAX-RUNNING`, `SAX-UNINITIALIZED`, `SAX-WRITE-BEGIN`, `SAX-WRITE-COMPLETE`, `SAX-WRITE-CONTENT`, `SAX-WRITE-ELEMENT`, `SAX-WRITE-ERROR`, `SAX-WRITE-IDLE`, `SAX-WRITE-TAG`, `SAX-WRITER`, `SCHEMA`, `SCHEMA-LOCATION`, `SCHEMA-MARSHAL`, `SCHEMA-PATH`, `SCREEN`, `SCREEN-IO`, `SCREEN-LINES`, `SCREEN-VAL`, `SCREEN-VALU`, `SCREEN-VALUE`, `SCROLL`, `SCROLL-BARS`, `SCROLL-DELTA`, `SCROLL-OFFSET`, `SCROLL-TO-CURRENT-ROW`, `SCROLL-TO-I`, `SCROLL-TO-IT`, `SCROLL-TO-ITE`, `SCROLL-TO-ITEM`, `SCROLL-TO-SELECTED-ROW`, `SCROLLABLE`, `SCROLLBAR-H`, `SCROLLBAR-HO`, `SCROLLBAR-HOR`, `SCROLLBAR-HORI`, `SCROLLBAR-HORIZ`, `SCROLLBAR-HORIZO`, `SCROLLBAR-HORIZON`, `SCROLLBAR-HORIZONT`, `SCROLLBAR-HORIZONTA`, `SCROLLBAR-HORIZONTAL`, `SCROLLBAR-V`, `SCROLLBAR-VE`, `SCROLLBAR-VER`, `SCROLLBAR-VERT`, `SCROLLBAR-VERTI`, `SCROLLBAR-VERTIC`, `SCROLLBAR-VERTICA`, `SCROLLBAR-VERTICAL`, `SCROLLED-ROW-POS`, `SCROLLED-ROW-POSI`, `SCROLLED-ROW-POSIT`, `SCROLLED-ROW-POSITI`, `SCROLLED-ROW-POSITIO`, `SCROLLED-ROW-POSITION`, `SCROLLING`, `SDBNAME`, `SEAL`, `SEAL-TIMESTAMP`, `SEARCH`, `SEARCH-SELF`, `SEARCH-TARGET`, `SECTION`, `SECURITY-POLICY`, `SEEK`, `SELECT`, `SELECT-ALL`, `SELECT-FOCUSED-ROW`, `SELECT-NEXT-ROW`, `SELECT-PREV-ROW`, `SELECT-ROW`, `SELECTABLE`, `SELECTED`, `SELECTION`, `SELECTION-END`, `SELECTION-LIST`, `SELECTION-START`, `SELECTION-TEXT`, `SELF`, `SEND`, `SEND-SQL-STATEMENT`, `SENSITIVE`, `SEPARATE-CONNECTION`, `SEPARATOR-FGCOLOR`, `SEPARATORS`, `SERIALIZABLE`, `SERIALIZE-HIDDEN`, `SERIALIZE-NAME`, `SERVER`, `SERVER-CONNECTION-BOUND`, `SERVER-CONNECTION-BOUND-REQUEST`, `SERVER-CONNECTION-CONTEXT`, `SERVER-CONNECTION-ID`, `SERVER-OPERATING-MODE`, `SESSION`, `SESSION-ID`, `SET`, `SET-APPL-CONTEXT`, `SET-ATTR-CALL-TYPE`, `SET-ATTRIBUTE-NODE`, `SET-BLUE`, `SET-BLUE-`, `SET-BLUE-V`, `SET-BLUE-VA`, `SET-BLUE-VAL`, `SET-BLUE-VALU`, `SET-BLUE-VALUE`, `SET-BREAK`, `SET-BUFFERS`, `SET-CALLBACK`, `SET-CLIENT`, `SET-COMMIT`, `SET-CONTENTS`, `SET-CURRENT-VALUE`, `SET-DB-CLIENT`, `SET-DYNAMIC`, `SET-EVENT-MANAGER-OPTION`, `SET-GREEN`, `SET-GREEN-`, `SET-GREEN-V`, `SET-GREEN-VA`, `SET-GREEN-VAL`, `SET-GREEN-VALU`, `SET-GREEN-VALUE`, `SET-INPUT-SOURCE`, `SET-OPTION`, `SET-OUTPUT-DESTINATION`, `SET-PARAMETER`, `SET-POINTER-VALUE`, `SET-PROPERTY`, `SET-RED`, `SET-RED-`, `SET-RED-V`, `SET-RED-VA`, `SET-RED-VAL`, `SET-RED-VALU`, `SET-RED-VALUE`, `SET-REPOSITIONED-ROW`, `SET-RGB-VALUE`, `SET-ROLLBACK`, `SET-SELECTION`, `SET-SIZE`, `SET-SORT-ARROW`, `SET-WAIT-STATE`, `SETUSER`, `SETUSERI`, `SETUSERID`, `SHA1-DIGEST`, `SHARE`, `SHARE-`, `SHARE-L`, `SHARE-LO`, `SHARE-LOC`, `SHARE-LOCK`, `SHARED`, `SHOW-IN-TASKBAR`, `SHOW-STAT`, `SHOW-STATS`, `SIDE-LAB`, `SIDE-LABE`, `SIDE-LABEL`, `SIDE-LABEL-H`, `SIDE-LABEL-HA`, `SIDE-LABEL-HAN`, `SIDE-LABEL-HAND`, `SIDE-LABEL-HANDL`, `SIDE-LABEL-HANDLE`, `SIDE-LABELS`, `SIGNATURE`, `SILENT`, `SIMPLE`, `SINGLE`, `SINGLE-RUN`, `SINGLETON`, `SIZE`, `SIZE-C`, `SIZE-CH`, `SIZE-CHA`, `SIZE-CHAR`, `SIZE-CHARS`, `SIZE-P`, `SIZE-PI`, `SIZE-PIX`, `SIZE-PIXE`, `SIZE-PIXEL`, `SIZE-PIXELS`, `SKIP`, `SKIP-DELETED-RECORD`, `SLIDER`, `SMALL-ICON`, `SMALL-TITLE`, `SMALLINT`, `SOME`, `SORT`, `SORT-ASCENDING`, `SORT-NUMBER`, `SOURCE`, `SOURCE-PROCEDURE`, `SPACE`, `SQL`, `SQRT`, `SSL-SERVER-NAME`, `STANDALONE`, `START`, `START-DOCUMENT`, `START-ELEMENT`, `START-MOVE`, `START-RESIZE`, `START-ROW-RESIZE`, `STATE-DETAIL`, `STATIC`, `STATUS`, `STATUS-AREA`, `STATUS-AREA-FONT`, `STDCALL`, `STOP`, `STOP-AFTER`, `STOP-PARSING`, `STOPPE`, `STOPPED`, `STORED-PROC`, `STORED-PROCE`, `STORED-PROCED`, `STORED-PROCEDU`, `STORED-PROCEDUR`, `STORED-PROCEDURE`, `STREAM`, `STREAM-HANDLE`, `STREAM-IO`, `STRETCH-TO-FIT`, `STRICT`, `STRICT-ENTITY-RESOLUTION`, `STRING`, `STRING-VALUE`, `STRING-XREF`, `SUB-AVE`, `SUB-AVER`, `SUB-AVERA`, `SUB-AVERAG`, `SUB-AVERAGE`, `SUB-COUNT`, `SUB-MAXIMUM`, `SUB-MENU`, `SUB-MIN`, `SUB-MINIMUM`, `SUB-TOTAL`, `SUBSCRIBE`, `SUBST`, `SUBSTI`, `SUBSTIT`, `SUBSTITU`, `SUBSTITUT`, `SUBSTITUTE`, `SUBSTR`, `SUBSTRI`, `SUBSTRIN`, `SUBSTRING`, `SUBTYPE`, `SUM`, `SUM-MAX`, `SUM-MAXI`, `SUM-MAXIM`, `SUM-MAXIMU`, `SUPER`, `SUPER-PROCEDURES`, `SUPPRESS-NAMESPACE-PROCESSING`, `SUPPRESS-W`, `SUPPRESS-WA`, `SUPPRESS-WAR`, `SUPPRESS-WARN`, `SUPPRESS-WARNI`, `SUPPRESS-WARNIN`, `SUPPRESS-WARNING`, `SUPPRESS-WARNINGS`, `SYMMETRIC-ENCRYPTION-ALGORITHM`, `SYMMETRIC-ENCRYPTION-IV`, `SYMMETRIC-ENCRYPTION-KEY`, `SYMMETRIC-SUPPORT`, `SYSTEM-ALERT`, `SYSTEM-ALERT-`, `SYSTEM-ALERT-B`, `SYSTEM-ALERT-BO`, `SYSTEM-ALERT-BOX`, `SYSTEM-ALERT-BOXE`, `SYSTEM-ALERT-BOXES`, `SYSTEM-DIALOG`, `SYSTEM-HELP`, `SYSTEM-ID`, `TAB-POSITION`, `TAB-STOP`, `TABLE`, `TABLE-HANDLE`, `TABLE-NUMBER`, `TABLE-SCAN`, `TARGET`, `TARGET-PROCEDURE`, `TEMP-DIR`, `TEMP-DIRE`, `TEMP-DIREC`, `TEMP-DIRECT`, `TEMP-DIRECTO`, `TEMP-DIRECTOR`, `TEMP-DIRECTORY`, `TEMP-TABLE`, `TEMP-TABLE-PREPARE`, `TERM`, `TERMI`, `TERMIN`, `TERMINA`, `TERMINAL`, `TERMINATE`, `TEXT`, `TEXT-CURSOR`, `TEXT-SEG-GROW`, `TEXT-SELECTED`, `THEN`, `THIS-OBJECT`, `THIS-PROCEDURE`, `THREAD-SAFE`, `THREE-D`, `THROUGH`, `THROW`, `THRU`, `TIC-MARKS`, `TIME`, `TIME-SOURCE`, `TITLE`, `TITLE-BGC`, `TITLE-BGCO`, `TITLE-BGCOL`, `TITLE-BGCOLO`, `TITLE-BGCOLOR`, `TITLE-DC`, `TITLE-DCO`, `TITLE-DCOL`, `TITLE-DCOLO`, `TITLE-DCOLOR`, `TITLE-FGC`, `TITLE-FGCO`, `TITLE-FGCOL`, `TITLE-FGCOLO`, `TITLE-FGCOLOR`, `TITLE-FO`, `TITLE-FON`, `TITLE-FONT`, `TO`, `TO-ROWID`, `TODAY`, `TOGGLE-BOX`, `TOOLTIP`, `TOOLTIPS`, `TOP-NAV-QUERY`, `TOP-ONLY`, `TOPIC`, `TOTAL`, `TRAILING`, `TRANS`, `TRANS-INIT-PROCEDURE`, `TRANSACTION`, `TRANSACTION-MODE`, `TRANSPARENT`, `TRIGGER`, `TRIGGERS`, `TRIM`, `TRUE`, `TRUNC`, `TRUNCA`, `TRUNCAT`, `TRUNCATE`, `TYPE`, `TYPE-OF`, `UNBOX`, `UNBUFF`, `UNBUFFE`, `UNBUFFER`, `UNBUFFERE`, `UNBUFFERED`, `UNDERL`, `UNDERLI`, `UNDERLIN`, `UNDERLINE`, `UNDO`, `UNFORM`, `UNFORMA`, `UNFORMAT`, `UNFORMATT`, `UNFORMATTE`, `UNFORMATTED`, `UNION`, `UNIQUE`, `UNIQUE-ID`, `UNIQUE-MATCH`, `UNIX`, `UNLESS-HIDDEN`, `UNLOAD`, `UNSIGNED-LONG`, `UNSUBSCRIBE`, `UP`, `UPDATE`, `UPDATE-ATTRIBUTE`, `URL`, `URL-DECODE`, `URL-ENCODE`, `URL-PASSWORD`, `URL-USERID`, `USE`, `USE-DICT-EXPS`, `USE-FILENAME`, `USE-INDEX`, `USE-REVVIDEO`, `USE-TEXT`, `USE-UNDERLINE`, `USE-WIDGET-POOL`, `USER`, `USER-ID`, `USERID`, `USING`, `V6DISPLAY`, `V6FRAME`, `VALID-EVENT`, `VALID-HANDLE`, `VALID-OBJECT`, `VALIDATE`, `VALIDATE-EXPRESSION`, `VALIDATE-MESSAGE`, `VALIDATE-SEAL`, `VALIDATION-ENABLED`, `VALUE`, `VALUE-CHANGED`, `VALUES`, `VAR`, `VARI`, `VARIA`, `VARIAB`, `VARIABL`, `VARIABLE`, `VERBOSE`, `VERSION`, `VERT`, `VERTI`, `VERTIC`, `VERTICA`, `VERTICAL`, `VIEW`, `VIEW-AS`, `VIEW-FIRST-COLUMN-ON-REOPEN`, `VIRTUAL-HEIGHT`, `VIRTUAL-HEIGHT-`, `VIRTUAL-HEIGHT-C`, `VIRTUAL-HEIGHT-CH`, `VIRTUAL-HEIGHT-CHA`, `VIRTUAL-HEIGHT-CHAR`, `VIRTUAL-HEIGHT-CHARS`, `VIRTUAL-HEIGHT-P`, `VIRTUAL-HEIGHT-PI`, `VIRTUAL-HEIGHT-PIX`, `VIRTUAL-HEIGHT-PIXE`, `VIRTUAL-HEIGHT-PIXEL`, `VIRTUAL-HEIGHT-PIXELS`, `VIRTUAL-WIDTH`, `VIRTUAL-WIDTH-`, `VIRTUAL-WIDTH-C`, `VIRTUAL-WIDTH-CH`, `VIRTUAL-WIDTH-CHA`, `VIRTUAL-WIDTH-CHAR`, `VIRTUAL-WIDTH-CHARS`, `VIRTUAL-WIDTH-P`, `VIRTUAL-WIDTH-PI`, `VIRTUAL-WIDTH-PIX`, `VIRTUAL-WIDTH-PIXE`, `VIRTUAL-WIDTH-PIXEL`, `VIRTUAL-WIDTH-PIXELS`, `VISIBLE`, `VOID`, `WAIT`, `WAIT-FOR`, `WARNING`, `WEB-CONTEXT`, `WEEKDAY`, `WHEN`, `WHERE`, `WHILE`, `WIDGET`, `WIDGET-E`, `WIDGET-EN`, `WIDGET-ENT`, `WIDGET-ENTE`, `WIDGET-ENTER`, `WIDGET-ID`, `WIDGET-L`, `WIDGET-LE`, `WIDGET-LEA`, `WIDGET-LEAV`, `WIDGET-LEAVE`, `WIDGET-POOL`, `WIDTH`, `WIDTH-`, `WIDTH-C`, `WIDTH-CH`, `WIDTH-CHA`, `WIDTH-CHAR`, `WIDTH-CHARS`, `WIDTH-P`, `WIDTH-PI`, `WIDTH-PIX`, `WIDTH-PIXE`, `WIDTH-PIXEL`, `WIDTH-PIXELS`, `WINDOW`, `WINDOW-MAXIM`, `WINDOW-MAXIMI`, `WINDOW-MAXIMIZ`, `WINDOW-MAXIMIZE`, `WINDOW-MAXIMIZED`, `WINDOW-MINIM`, `WINDOW-MINIMI`, `WINDOW-MINIMIZ`, `WINDOW-MINIMIZE`, `WINDOW-MINIMIZED`, `WINDOW-NAME`, `WINDOW-NORMAL`, `WINDOW-STA`, `WINDOW-STAT`, `WINDOW-STATE`, `WINDOW-SYSTEM`, `WITH`, `WORD-INDEX`, `WORD-WRAP`, `WORK-AREA-HEIGHT-PIXELS`, `WORK-AREA-WIDTH-PIXELS`, `WORK-AREA-X`, `WORK-AREA-Y`, `WORK-TAB`, `WORK-TABL`, `WORK-TABLE`, `WORKFILE`, `WRITE`, `WRITE-CDATA`, `WRITE-CHARACTERS`, `WRITE-COMMENT`, `WRITE-DATA-ELEMENT`, `WRITE-EMPTY-ELEMENT`, `WRITE-ENTITY-REF`, `WRITE-EXTERNAL-DTD`, `WRITE-FRAGMENT`, `WRITE-JSON`, `WRITE-MESSAGE`, `WRITE-PROCESSING-INSTRUCTION`, `WRITE-STATUS`, `WRITE-XML`, `WRITE-XMLSCHEMA`, `X`, `X-OF`, `XCODE`, `XML-DATA-TYPE`, `XML-ENTITY-EXPANSION-LIMIT`, `XML-NODE-TYPE`, `XML-SCHEMA-PATH`, `XML-STRICT-ENTITY-RESOLUTION`, `XML-SUPPRESS-NAMESPACE-PROCESSING`, `XREF`, `XREF-XML`, `Y`, `Y-OF`, `YEAR`, `YEAR-OFFSET`, `YES`, `YES-NO`, `YES-NO-CANCEL`), KeywordReserved, nil}, // nolint
26 {`"(\\\\|\\[^\\]|[^"\\])*"`, LiteralStringDouble, nil},
27 {`'(\\\\|\\[^\\]|[^'\\])*'`, LiteralStringSingle, nil},
28 {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil},
29 {`[0-9]+`, LiteralNumberInteger, nil},
30 {`\s+`, Text, nil},
31 {`[+*/=-]`, Operator, nil},
32 {`[.:()]`, Punctuation, nil},
33 {`.`, NameVariable, nil},
34 },
35 "comment": {
36 {`[^*/]`, CommentMultiline, nil},
37 {`/\*`, CommentMultiline, Push()},
38 {`\*/`, CommentMultiline, Pop(1)},
39 {`[*/]`, CommentMultiline, nil},
40 {`\/\/`, CommentSingle, nil},
41 },
42 "preprocessor": {
43 {`[^{}]`, CommentPreproc, nil},
44 {`\{`, CommentPreproc, Push()},
45 {`\}`, CommentPreproc, Pop(1)},
46 },
47 }
48 },
49))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/org.go b/vendor/github.com/alecthomas/chroma/v2/lexers/org.go
new file mode 100644
index 0000000..aed663f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/org.go
@@ -0,0 +1,99 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Org mode lexer.
8var Org = Register(MustNewLexer(
9 &Config{
10 Name: "Org Mode",
11 Aliases: []string{"org", "orgmode"},
12 Filenames: []string{"*.org"},
13 MimeTypes: []string{"text/org"}, // https://lists.gnu.org/r/emacs-orgmode/2017-09/msg00087.html
14 },
15 orgRules,
16))
17
18func orgRules() Rules {
19 return Rules{
20 "root": {
21 {`^# .*$`, Comment, nil},
22 // Headings
23 {`^(\*)( COMMENT)( .*)$`, ByGroups(GenericHeading, NameEntity, GenericStrong), nil},
24 {`^(\*\*+)( COMMENT)( .*)$`, ByGroups(GenericSubheading, NameEntity, Text), nil},
25 {`^(\*)( DONE)( .*)$`, ByGroups(GenericHeading, LiteralStringRegex, GenericStrong), nil},
26 {`^(\*\*+)( DONE)( .*)$`, ByGroups(GenericSubheading, LiteralStringRegex, Text), nil},
27 {`^(\*)( TODO)( .*)$`, ByGroups(GenericHeading, Error, GenericStrong), nil},
28 {`^(\*\*+)( TODO)( .*)$`, ByGroups(GenericSubheading, Error, Text), nil},
29 {`^(\*)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericHeading, GenericStrong, GenericEmph), nil}, // Level 1 heading with tags
30 {`^(\*)( .+)$`, ByGroups(GenericHeading, GenericStrong), nil}, // // Level 1 heading with NO tags
31 {`^(\*\*+)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericSubheading, Text, GenericEmph), nil}, // Level 2+ heading with tags
32 {`^(\*\*+)( .+)$`, ByGroups(GenericSubheading, Text), nil}, // Level 2+ heading with NO tags
33 // Checkbox lists
34 {`^( *)([+-] )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
35 {`^( +)(\* )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
36 // Definition lists
37 {`^( *)([+-] )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
38 {`^( +)(\* )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
39 // Unordered lists
40 {`^( *)([+-] )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
41 {`^( +)(\* )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
42 // Ordered lists
43 {`^( *)([0-9]+[.)])( \[@[0-9]+\])( .+)$`, ByGroups(Text, Keyword, GenericEmph, UsingSelf("inline")), nil},
44 {`^( *)([0-9]+[.)])( .+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
45 // Dynamic Blocks
46 {`(?i)^( *#\+begin: )([^ ]+)([\w\W]*?\n)([\w\W]*?)(^ *#\+end: *$)`, ByGroups(Comment, CommentSpecial, Comment, UsingSelf("inline"), Comment), nil},
47 // Blocks
48 // - Comment Blocks
49 {`(?i)^( *#\+begin_comment *\n)([\w\W]*?)(^ *#\+end_comment *$)`, ByGroups(Comment, Comment, Comment), nil},
50 // - Src Blocks
51 {
52 `(?i)^( *#\+begin_src )([^ \n]+)(.*?\n)([\w\W]*?)(^ *#\+end_src *$)`,
53 UsingByGroup(2, 4, Comment, CommentSpecial, Comment, Text, Comment),
54 nil,
55 },
56 // - Export Blocks
57 {
58 `(?i)^( *#\+begin_export )(\w+)( *\n)([\w\W]*?)(^ *#\+end_export *$)`,
59 UsingByGroup(2, 4, Comment, CommentSpecial, Text, Text, Comment),
60 nil,
61 },
62 // - Org Special, Example, Verse, etc. Blocks
63 {`(?i)^( *#\+begin_)(\w+)( *\n)([\w\W]*?)(^ *#\+end_\2)( *$)`, ByGroups(Comment, Comment, Text, Text, Comment, Text), nil},
64 // Keywords
65 {`^(#\+\w+)(:.*)$`, ByGroups(CommentSpecial, Comment), nil}, // Other Org keywords like #+title
66 // Properties and Drawers
67 {`(?i)^( *:\w+: *\n)([\w\W]*?)(^ *:end: *$)`, ByGroups(Comment, CommentSpecial, Comment), nil},
68 // Line break operator
69 {`^(.*)(\\\\)$`, ByGroups(UsingSelf("inline"), Operator), nil},
70 // Deadline/Scheduled
71 {`(?i)^( *(?:DEADLINE|SCHEDULED): )(<[^<>]+?> *)$`, ByGroups(Comment, CommentSpecial), nil}, // DEADLINE/SCHEDULED: <datestamp>
72 // DONE state CLOSED
73 {`(?i)^( *CLOSED: )(\[[^][]+?\] *)$`, ByGroups(Comment, CommentSpecial), nil}, // CLOSED: [datestamp]
74 // All other lines
75 Include("inline"),
76 },
77 "inline": {
78 {`(\s)*(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))`, ByGroups(Text, GenericStrong, Text), nil}, // Bold
79 {`(\s)*(/[^/]+?/)((?=\W|\n|$))`, ByGroups(Text, GenericEmph, Text), nil}, // Italic
80 {`(\s)*(=[^\n=]+?=)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil}, // Verbatim
81 {`(\s)*(~[^\n~]+?~)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil}, // Code
82 {`(\s)*(\+[^+]+?\+)((?=\W|\n|$))`, ByGroups(Text, GenericDeleted, Text), nil}, // Strikethrough
83 {`(\s)*(_[^_]+?_)((?=\W|\n|$))`, ByGroups(Text, GenericUnderline, Text), nil}, // Underline
84 {`(<)([^<>]+?)(>)`, ByGroups(Text, String, Text), nil}, // <datestamp>
85 {`[{]{3}[^}]+[}]{3}`, NameBuiltin, nil}, // {{{macro(foo,1)}}}
86 {`([^[])(\[fn:)([^]]+?)(\])([^]])`, ByGroups(Text, NameBuiltinPseudo, LiteralString, NameBuiltinPseudo, Text), nil}, // [fn:1]
87 // Links
88 {`(\[\[)([^][]+?)(\]\[)([^][]+)(\]\])`, ByGroups(Text, NameAttribute, Text, NameTag, Text), nil}, // [[link][descr]]
89 {`(\[\[)([^][]+?)(\]\])`, ByGroups(Text, NameAttribute, Text), nil}, // [[link]]
90 {`(<<)([^<>]+?)(>>)`, ByGroups(Text, NameAttribute, Text), nil}, // <<targetlink>>
91 // Tables
92 {`^( *)(\|[ -].*?[ -]\|)$`, ByGroups(Text, String), nil},
93 // Blank lines, newlines
94 {`\n`, Text, nil},
95 // Any other text
96 {`.`, Text, nil},
97 },
98 }
99}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/php.go b/vendor/github.com/alecthomas/chroma/v2/lexers/php.go
new file mode 100644
index 0000000..ff82f6e
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/php.go
@@ -0,0 +1,37 @@
1package lexers
2
3import (
4 "strings"
5
6 . "github.com/alecthomas/chroma/v2" // nolint
7)
8
9// phtml lexer is PHP in HTML.
10var _ = Register(DelegatingLexer(HTML, MustNewLexer(
11 &Config{
12 Name: "PHTML",
13 Aliases: []string{"phtml"},
14 Filenames: []string{"*.phtml", "*.php", "*.php[345]", "*.inc"},
15 MimeTypes: []string{"application/x-php", "application/x-httpd-php", "application/x-httpd-php3", "application/x-httpd-php4", "application/x-httpd-php5", "text/x-php"},
16 DotAll: true,
17 CaseInsensitive: true,
18 EnsureNL: true,
19 Priority: 2,
20 },
21 func() Rules {
22 return Get("PHP").(*RegexLexer).MustRules().
23 Rename("root", "php").
24 Merge(Rules{
25 "root": {
26 {`<\?(php)?`, CommentPreproc, Push("php")},
27 {`[^<]+`, Other, nil},
28 {`<`, Other, nil},
29 },
30 })
31 },
32).SetAnalyser(func(text string) float32 {
33 if strings.Contains(text, "<?php") {
34 return 0.5
35 }
36 return 0.0
37})))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go b/vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go
new file mode 100644
index 0000000..8b32aa4
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/plaintext.go
@@ -0,0 +1,16 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7var Plaintext = Register(MustNewLexer(
8 &Config{
9 Name: "plaintext",
10 Aliases: []string{"text", "plain", "no-highlight"},
11 Filenames: []string{"*.txt"},
12 MimeTypes: []string{"text/plain"},
13 Priority: -1,
14 },
15 PlaintextRules,
16))
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go b/vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go
new file mode 100644
index 0000000..0ef96ef
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/postgres.go
@@ -0,0 +1,77 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Postgresql Sql Dialect lexer.
8var PostgreSQL = Register(MustNewLexer(
9 &Config{
10 Name: "PostgreSQL SQL dialect",
11 Aliases: []string{"postgresql", "postgres"},
12 Filenames: []string{},
13 MimeTypes: []string{"text/x-postgresql"},
14 NotMultiline: true,
15 CaseInsensitive: true,
16 },
17 postgreSQLRules,
18))
19
20func postgreSQLRules() Rules {
21 return Rules{
22 "root": {
23 {`\s+`, Text, nil},
24 {`--.*\n?`, CommentSingle, nil},
25 {`/\*`, CommentMultiline, Push("multiline-comments")},
26 {`(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b`, NameBuiltin, nil},
27 {
28 `(?s)(DO)(\s+)(?:(LANGUAGE)?(\s+)('?)(\w+)?('?)(\s+))?(\$)([^$]*)(\$)(.*?)(\$)(\10)(\$)`,
29 UsingByGroup(6, 12,
30 Keyword, Text, Keyword, Text, // DO LANGUAGE
31 StringSingle, StringSingle, StringSingle, Text, // 'plpgsql'
32 StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
33 StringHeredoc, // (code block)
34 StringHeredoc, StringHeredoc, StringHeredoc), // $tag$
35 nil,
36 },
37 {Words(``, `\b`, `ABORT`, `ABSOLUTE`, `ACCESS`, `ACTION`, `ADD`, `ADMIN`, `AFTER`, `AGGREGATE`, `ALL`, `ALSO`, `ALTER`, `ALWAYS`, `ANALYSE`, `ANALYZE`, `AND`, `ANY`, `ARRAY`, `AS`, `ASC`, `ASSERTION`, `ASSIGNMENT`, `ASYMMETRIC`, `AT`, `ATTRIBUTE`, `AUTHORIZATION`, `BACKWARD`, `BEFORE`, `BEGIN`, `BETWEEN`, `BIGINT`, `BINARY`, `BIT`, `BOOLEAN`, `BOTH`, `BY`, `CACHE`, `CALLED`, `CASCADE`, `CASCADED`, `CASE`, `CAST`, `CATALOG`, `CHAIN`, `CHAR`, `CHARACTER`, `CHARACTERISTICS`, `CHECK`, `CHECKPOINT`, `CLASS`, `CLOSE`, `CLUSTER`, `COALESCE`, `COLLATE`, `COLLATION`, `COLUMN`, `COMMENT`, `COMMENTS`, `COMMIT`, `COMMITTED`, `CONCURRENTLY`, `CONFIGURATION`, `CONNECTION`, `CONSTRAINT`, `CONSTRAINTS`, `CONTENT`, `CONTINUE`, `CONVERSION`, `COPY`, `COST`, `CREATE`, `CROSS`, `CSV`, `CURRENT`, `CURRENT_CATALOG`, `CURRENT_DATE`, `CURRENT_ROLE`, `CURRENT_SCHEMA`, `CURRENT_TIME`, `CURRENT_TIMESTAMP`, `CURRENT_USER`, `CURSOR`, `CYCLE`, `DATA`, `DATABASE`, `DAY`, `DEALLOCATE`, `DEC`, `DECIMAL`, `DECLARE`, `DEFAULT`, `DEFAULTS`, `DEFERRABLE`, `DEFERRED`, `DEFINER`, `DELETE`, `DELIMITER`, `DELIMITERS`, `DESC`, `DICTIONARY`, `DISABLE`, `DISCARD`, `DISTINCT`, `DO`, `DOCUMENT`, `DOMAIN`, `DOUBLE`, `DROP`, `EACH`, `ELSE`, `ENABLE`, `ENCODING`, `ENCRYPTED`, `END`, `ENUM`, `ESCAPE`, `EVENT`, `EXCEPT`, `EXCLUDE`, `EXCLUDING`, `EXCLUSIVE`, `EXECUTE`, `EXISTS`, `EXPLAIN`, `EXTENSION`, `EXTERNAL`, `EXTRACT`, `FALSE`, `FAMILY`, `FETCH`, `FILTER`, `FIRST`, `FLOAT`, `FOLLOWING`, `FOR`, `FORCE`, `FOREIGN`, `FORWARD`, `FREEZE`, `FROM`, `FULL`, `FUNCTION`, `FUNCTIONS`, `GLOBAL`, `GRANT`, `GRANTED`, `GREATEST`, `GROUP`, `HANDLER`, `HAVING`, `HEADER`, `HOLD`, `HOUR`, `IDENTITY`, `IF`, `ILIKE`, `IMMEDIATE`, `IMMUTABLE`, `IMPLICIT`, `IN`, `INCLUDING`, `INCREMENT`, `INDEX`, `INDEXES`, `INHERIT`, `INHERITS`, `INITIALLY`, `INLINE`, `INNER`, `INOUT`, `INPUT`, `INSENSITIVE`, `INSERT`, `INSTEAD`, `INT`, `INTEGER`, `INTERSECT`, `INTERVAL`, `INTO`, `INVOKER`, `IS`, `ISNULL`, `ISOLATION`, `JOIN`, `KEY`, `LABEL`, `LANGUAGE`, `LARGE`, `LAST`, `LATERAL`, `LC_COLLATE`, `LC_CTYPE`, `LEADING`, `LEAKPROOF`, `LEAST`, `LEFT`, `LEVEL`, `LIKE`, `LIMIT`, `LISTEN`, `LOAD`, `LOCAL`, `LOCALTIME`, `LOCALTIMESTAMP`, `LOCATION`, `LOCK`, `MAPPING`, `MATCH`, `MATERIALIZED`, `MAXVALUE`, `MINUTE`, `MINVALUE`, `MODE`, `MONTH`, `MOVE`, `NAME`, `NAMES`, `NATIONAL`, `NATURAL`, `NCHAR`, `NEXT`, `NO`, `NONE`, `NOT`, `NOTHING`, `NOTIFY`, `NOTNULL`, `NOWAIT`, `NULL`, `NULLIF`, `NULLS`, `NUMERIC`, `OBJECT`, `OF`, `OFF`, `OFFSET`, `OIDS`, `ON`, `ONLY`, `OPERATOR`, `OPTION`, `OPTIONS`, `OR`, `ORDER`, `ORDINALITY`, `OUT`, `OUTER`, `OVER`, `OVERLAPS`, `OVERLAY`, `OWNED`, `OWNER`, `PARSER`, `PARTIAL`, `PARTITION`, `PASSING`, `PASSWORD`, `PLACING`, `PLANS`, `POLICY`, `POSITION`, `PRECEDING`, `PRECISION`, `PREPARE`, `PREPARED`, `PRESERVE`, `PRIMARY`, `PRIOR`, `PRIVILEGES`, `PROCEDURAL`, `PROCEDURE`, `PROGRAM`, `QUOTE`, `RANGE`, `READ`, `REAL`, `REASSIGN`, `RECHECK`, `RECURSIVE`, `REF`, `REFERENCES`, `REFRESH`, `REINDEX`, `RELATIVE`, `RELEASE`, `RENAME`, `REPEATABLE`, `REPLACE`, `REPLICA`, `RESET`, `RESTART`, `RESTRICT`, `RETURNING`, `RETURNS`, `REVOKE`, `RIGHT`, `ROLE`, `ROLLBACK`, `ROW`, `ROWS`, `RULE`, `SAVEPOINT`, `SCHEMA`, `SCROLL`, `SEARCH`, `SECOND`, `SECURITY`, `SELECT`, `SEQUENCE`, `SEQUENCES`, `SERIALIZABLE`, `SERVER`, `SESSION`, `SESSION_USER`, `SET`, `SETOF`, `SHARE`, `SHOW`, `SIMILAR`, `SIMPLE`, `SMALLINT`, `SNAPSHOT`, `SOME`, `STABLE`, `STANDALONE`, `START`, `STATEMENT`, `STATISTICS`, `STDIN`, `STDOUT`, `STORAGE`, `STRICT`, `STRIP`, `SUBSTRING`, `SYMMETRIC`, `SYSID`, `SYSTEM`, `TABLE`, `TABLES`, `TABLESPACE`, `TEMP`, `TEMPLATE`, `TEMPORARY`, `TEXT`, `THEN`, `TIME`, `TIMESTAMP`, `TO`, `TRAILING`, `TRANSACTION`, `TREAT`, `TRIGGER`, `TRIM`, `TRUE`, `TRUNCATE`, `TRUSTED`, `TYPE`, `TYPES`, `UNBOUNDED`, `UNCOMMITTED`, `UNENCRYPTED`, `UNION`, `UNIQUE`, `UNKNOWN`, `UNLISTEN`, `UNLOGGED`, `UNTIL`, `UPDATE`, `USER`, `USING`, `VACUUM`, `VALID`, `VALIDATE`, `VALIDATOR`, `VALUE`, `VALUES`, `VARCHAR`, `VARIADIC`, `VARYING`, `VERBOSE`, `VERSION`, `VIEW`, `VIEWS`, `VOLATILE`, `WHEN`, `WHERE`, `WHITESPACE`, `WINDOW`, `WITH`, `WITHIN`, `WITHOUT`, `WORK`, `WRAPPER`, `WRITE`, `XML`, `XMLATTRIBUTES`, `XMLCONCAT`, `XMLELEMENT`, `XMLEXISTS`, `XMLFOREST`, `XMLPARSE`, `XMLPI`, `XMLROOT`, `XMLSERIALIZE`, `YEAR`, `YES`, `ZONE`), Keyword, nil},
38 {"[+*/<>=~!@#%^&|`?-]+", Operator, nil},
39 {`::`, Operator, nil},
40 {`\$\d+`, NameVariable, nil},
41 {`([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil},
42 {`[0-9]+`, LiteralNumberInteger, nil},
43 {`((?:E|U&)?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("string")},
44 {`((?:U&)?)(")`, ByGroups(LiteralStringAffix, LiteralStringName), Push("quoted-ident")},
45 {
46 `(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)(\s+)(LANGUAGE)?(\s+)('?)(\w+)?('?)`,
47 UsingByGroup(12, 4,
48 StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
49 StringHeredoc, // (code block)
50 StringHeredoc, StringHeredoc, StringHeredoc, // $tag$
51 Text, Keyword, Text, // <space> LANGUAGE <space>
52 StringSingle, StringSingle, StringSingle), // 'type'
53 nil,
54 },
55 {`(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)`, LiteralStringHeredoc, nil},
56 {`[a-z_]\w*`, Name, nil},
57 {`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil},
58 {`[;:()\[\]{},.]`, Punctuation, nil},
59 },
60 "multiline-comments": {
61 {`/\*`, CommentMultiline, Push("multiline-comments")},
62 {`\*/`, CommentMultiline, Pop(1)},
63 {`[^/*]+`, CommentMultiline, nil},
64 {`[/*]`, CommentMultiline, nil},
65 },
66 "string": {
67 {`[^']+`, LiteralStringSingle, nil},
68 {`''`, LiteralStringSingle, nil},
69 {`'`, LiteralStringSingle, Pop(1)},
70 },
71 "quoted-ident": {
72 {`[^"]+`, LiteralStringName, nil},
73 {`""`, LiteralStringName, nil},
74 {`"`, LiteralStringName, Pop(1)},
75 },
76 }
77}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/raku.go b/vendor/github.com/alecthomas/chroma/v2/lexers/raku.go
new file mode 100644
index 0000000..04aa206
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/raku.go
@@ -0,0 +1,1721 @@
1package lexers
2
3import (
4 "regexp"
5 "strings"
6 "unicode/utf8"
7
8 "github.com/dlclark/regexp2"
9
10 . "github.com/alecthomas/chroma/v2" // nolint
11)
12
13// Raku lexer.
14var Raku Lexer = Register(MustNewLexer(
15 &Config{
16 Name: "Raku",
17 Aliases: []string{"perl6", "pl6", "raku"},
18 Filenames: []string{
19 "*.pl", "*.pm", "*.nqp", "*.p6", "*.6pl", "*.p6l", "*.pl6", "*.6pm",
20 "*.p6m", "*.pm6", "*.t", "*.raku", "*.rakumod", "*.rakutest", "*.rakudoc",
21 },
22 MimeTypes: []string{
23 "text/x-perl6", "application/x-perl6",
24 "text/x-raku", "application/x-raku",
25 },
26 DotAll: true,
27 },
28 rakuRules,
29))
30
31func rakuRules() Rules {
32 type RakuToken int
33
34 const (
35 rakuQuote RakuToken = iota
36 rakuNameAttribute
37 rakuPod
38 rakuPodFormatter
39 rakuPodDeclaration
40 rakuMultilineComment
41 rakuMatchRegex
42 rakuSubstitutionRegex
43 )
44
45 const (
46 colonPairOpeningBrackets = `(?:<<|<|«|\(|\[|\{)`
47 colonPairClosingBrackets = `(?:>>|>|»|\)|\]|\})`
48 colonPairPattern = `(?<!:)(?<colon>:)(?<key>\w[\w'-]*)(?<opening_delimiters>` + colonPairOpeningBrackets + `)`
49 colonPairLookahead = `(?=(:['\w-]+` +
50 colonPairOpeningBrackets + `.+?` + colonPairClosingBrackets + `)?`
51 namePattern = `(?:(?!` + colonPairPattern + `)(?:::|[\w':-]))+`
52 variablePattern = `[$@%&]+[.^:?=!~]?` + namePattern
53 globalVariablePattern = `[$@%&]+\*` + namePattern
54 )
55
56 keywords := []string{
57 `BEGIN`, `CATCH`, `CHECK`, `CLOSE`, `CONTROL`, `DOC`, `END`, `ENTER`, `FIRST`, `INIT`,
58 `KEEP`, `LAST`, `LEAVE`, `NEXT`, `POST`, `PRE`, `QUIT`, `UNDO`, `anon`, `augment`, `but`,
59 `class`, `constant`, `default`, `does`, `else`, `elsif`, `enum`, `for`, `gather`, `given`,
60 `grammar`, `has`, `if`, `import`, `is`, `of`, `let`, `loop`, `made`, `make`, `method`,
61 `module`, `multi`, `my`, `need`, `orwith`, `our`, `proceed`, `proto`, `repeat`, `require`,
62 `where`, `return`, `return-rw`, `returns`, `->`, `-->`, `role`, `state`, `sub`, `no`,
63 `submethod`, `subset`, `succeed`, `supersede`, `try`, `unit`, `unless`, `until`,
64 `use`, `when`, `while`, `with`, `without`, `export`, `native`, `repr`, `required`, `rw`,
65 `symbol`, `default`, `cached`, `DEPRECATED`, `dynamic`, `hidden-from-backtrace`, `nodal`,
66 `pure`, `raw`, `start`, `react`, `supply`, `whenever`, `also`, `rule`, `token`, `regex`,
67 `dynamic-scope`, `built`, `temp`,
68 }
69
70 keywordsPattern := Words(`(?<!['\w:-])`, `(?!['\w:-])`, keywords...)
71
72 wordOperators := []string{
73 `X`, `Z`, `R`, `after`, `and`, `andthen`, `before`, `cmp`, `div`, `eq`, `eqv`, `extra`, `ge`,
74 `gt`, `le`, `leg`, `lt`, `mod`, `ne`, `or`, `orelse`, `x`, `xor`, `xx`, `gcd`, `lcm`,
75 `but`, `min`, `max`, `^fff`, `fff^`, `fff`, `^ff`, `ff^`, `ff`, `so`, `not`, `unicmp`,
76 `TR`, `o`, `(&)`, `(.)`, `(|)`, `(+)`, `(-)`, `(^)`, `coll`, `(elem)`, `(==)`,
77 `(cont)`, `(<)`, `(<=)`, `(>)`, `(>=)`, `minmax`, `notandthen`, `S`,
78 }
79
80 wordOperatorsPattern := Words(`(?<=^|\b|\s)`, `(?=$|\b|\s)`, wordOperators...)
81
82 operators := []string{
83 `++`, `--`, `-`, `**`, `!`, `+`, `~`, `?`, `+^`, `~^`, `?^`, `^`, `*`, `/`, `%`, `%%`, `+&`,
84 `+<`, `+>`, `~&`, `~<`, `~>`, `?&`, `+|`, `+^`, `~|`, `~^`, `?`, `?|`, `?^`, `&`, `^`,
85 `<=>`, `^…^`, `^…`, `…^`, `…`, `...`, `...^`, `^...`, `^...^`, `..`, `..^`, `^..`, `^..^`,
86 `::=`, `:=`, `!=`, `==`, `<=`, `<`, `>=`, `>`, `~~`, `===`, `&&`, `||`, `|`, `^^`, `//`,
87 `??`, `!!`, `^fff^`, `^ff^`, `<==`, `==>`, `<<==`, `==>>`, `=>`, `=`, `<<`, `«`, `>>`, `»`,
88 `,`, `>>.`, `».`, `.&`, `.=`, `.^`, `.?`, `.+`, `.*`, `.`, `∘`, `∩`, `⊍`, `∪`, `⊎`, `∖`,
89 `⊖`, `≠`, `≤`, `≥`, `=:=`, `=~=`, `≅`, `∈`, `∉`, `≡`, `≢`, `∋`, `∌`, `⊂`, `⊄`, `⊆`, `⊈`,
90 `⊃`, `⊅`, `⊇`, `⊉`, `:`, `!!!`, `???`, `¯`, `×`, `÷`, `−`, `⁺`, `⁻`,
91 }
92
93 operatorsPattern := Words(``, ``, operators...)
94
95 builtinTypes := []string{
96 `False`, `True`, `Order`, `More`, `Less`, `Same`, `Any`, `Array`, `Associative`, `AST`,
97 `atomicint`, `Attribute`, `Backtrace`, `Backtrace::Frame`, `Bag`, `Baggy`, `BagHash`,
98 `Blob`, `Block`, `Bool`, `Buf`, `Callable`, `CallFrame`, `Cancellation`, `Capture`,
99 `CArray`, `Channel`, `Code`, `compiler`, `Complex`, `ComplexStr`, `CompUnit`,
100 `CompUnit::PrecompilationRepository`, `CompUnit::Repository`, `Empty`,
101 `CompUnit::Repository::FileSystem`, `CompUnit::Repository::Installation`, `Cool`,
102 `CurrentThreadScheduler`, `CX::Warn`, `CX::Take`, `CX::Succeed`, `CX::Return`, `CX::Redo`,
103 `CX::Proceed`, `CX::Next`, `CX::Last`, `CX::Emit`, `CX::Done`, `Cursor`, `Date`, `Dateish`,
104 `DateTime`, `Distribution`, `Distribution::Hash`, `Distribution::Locally`,
105 `Distribution::Path`, `Distribution::Resource`, `Distro`, `Duration`, `Encoding`,
106 `Encoding::GlobalLexerRegistry`, `Endian`, `Enumeration`, `Exception`, `Failure`, `FatRat`, `Grammar`,
107 `Hash`, `HyperWhatever`, `Instant`, `Int`, `int`, `int16`, `int32`, `int64`, `int8`, `str`,
108 `IntStr`, `IO`, `IO::ArgFiles`, `IO::CatHandle`, `IO::Handle`, `IO::Notification`,
109 `IO::Notification::Change`, `IO::Path`, `IO::Path::Cygwin`, `IO::Path::Parts`,
110 `IO::Path::QNX`, `IO::Path::Unix`, `IO::Path::Win32`, `IO::Pipe`, `IO::Socket`,
111 `IO::Socket::Async`, `IO::Socket::Async::ListenSocket`, `IO::Socket::INET`, `IO::Spec`,
112 `IO::Spec::Cygwin`, `IO::Spec::QNX`, `IO::Spec::Unix`, `IO::Spec::Win32`, `IO::Special`,
113 `Iterable`, `Iterator`, `Junction`, `Kernel`, `Label`, `List`, `Lock`, `Lock::Async`,
114 `Lock::ConditionVariable`, `long`, `longlong`, `Macro`, `Map`, `Match`,
115 `Metamodel::AttributeContainer`, `Metamodel::C3MRO`, `Metamodel::ClassHOW`,
116 `Metamodel::ConcreteRoleHOW`, `Metamodel::CurriedRoleHOW`, `Metamodel::DefiniteHOW`,
117 `Metamodel::Documenting`, `Metamodel::EnumHOW`, `Metamodel::Finalization`,
118 `Metamodel::MethodContainer`, `Metamodel::Mixins`, `Metamodel::MROBasedMethodDispatch`,
119 `Metamodel::MultipleInheritance`, `Metamodel::Naming`, `Metamodel::Primitives`,
120 `Metamodel::PrivateMethodContainer`, `Metamodel::RoleContainer`, `Metamodel::RolePunning`,
121 `Metamodel::Stashing`, `Metamodel::Trusting`, `Metamodel::Versioning`, `Method`, `Mix`,
122 `MixHash`, `Mixy`, `Mu`, `NFC`, `NFD`, `NFKC`, `NFKD`, `Nil`, `Num`, `num32`, `num64`,
123 `Numeric`, `NumStr`, `ObjAt`, `Order`, `Pair`, `Parameter`, `Perl`, `Pod::Block`,
124 `Pod::Block::Code`, `Pod::Block::Comment`, `Pod::Block::Declarator`, `Pod::Block::Named`,
125 `Pod::Block::Para`, `Pod::Block::Table`, `Pod::Heading`, `Pod::Item`, `Pointer`,
126 `Positional`, `PositionalBindFailover`, `Proc`, `Proc::Async`, `Promise`, `Proxy`,
127 `PseudoStash`, `QuantHash`, `RaceSeq`, `Raku`, `Range`, `Rat`, `Rational`, `RatStr`,
128 `Real`, `Regex`, `Routine`, `Routine::WrapHandle`, `Scalar`, `Scheduler`, `Semaphore`,
129 `Seq`, `Sequence`, `Set`, `SetHash`, `Setty`, `Signature`, `size_t`, `Slip`, `Stash`,
130 `Str`, `StrDistance`, `Stringy`, `Sub`, `Submethod`, `Supplier`, `Supplier::Preserving`,
131 `Supply`, `Systemic`, `Tap`, `Telemetry`, `Telemetry::Instrument::Thread`,
132 `Telemetry::Instrument::ThreadPool`, `Telemetry::Instrument::Usage`, `Telemetry::Period`,
133 `Telemetry::Sampler`, `Thread`, `Test`, `ThreadPoolScheduler`, `UInt`, `uint16`, `uint32`,
134 `uint64`, `uint8`, `Uni`, `utf8`, `ValueObjAt`, `Variable`, `Version`, `VM`, `Whatever`,
135 `WhateverCode`, `WrapHandle`, `NativeCall`,
136 // Pragmas
137 `precompilation`, `experimental`, `worries`, `MONKEY-TYPING`, `MONKEY-SEE-NO-EVAL`,
138 `MONKEY-GUTS`, `fatal`, `lib`, `isms`, `newline`, `nqp`, `soft`,
139 `strict`, `trace`, `variables`,
140 }
141
142 builtinTypesPattern := Words(`(?<!['\w:-])`, `(?::[_UD])?(?!['\w:-])`, builtinTypes...)
143
144 builtinRoutines := []string{
145 `ACCEPTS`, `abs`, `abs2rel`, `absolute`, `accept`, `accepts_type`, `accessed`, `acos`,
146 `acosec`, `acosech`, `acosh`, `acotan`, `acotanh`, `acquire`, `act`, `action`, `actions`,
147 `add`, `add_attribute`, `add_enum_value`, `add_fallback`, `add_method`, `add_parent`,
148 `add_private_method`, `add_role`, `add_stash`, `add_trustee`, `addendum`, `adverb`, `after`,
149 `all`, `allocate`, `allof`, `allowed`, `alternative-names`, `annotations`, `antipair`,
150 `antipairs`, `any`, `anyof`, `api`, `app_lifetime`, `append`, `arch`, `archetypes`,
151 `archname`, `args`, `ARGS-TO-CAPTURE`, `arity`, `Array`, `asec`, `asech`, `asin`, `asinh`,
152 `ASSIGN-KEY`, `ASSIGN-POS`, `assuming`, `ast`, `at`, `atan`, `atan2`, `atanh`, `AT-KEY`,
153 `atomic-assign`, `atomic-dec-fetch`, `atomic-fetch`, `atomic-fetch-add`, `atomic-fetch-dec`,
154 `atomic-fetch-inc`, `atomic-fetch-sub`, `atomic-inc-fetch`, `AT-POS`, `attributes`, `auth`,
155 `await`, `backend`, `backtrace`, `Bag`, `bag`, `Baggy`, `BagHash`, `bail-out`, `base`,
156 `basename`, `base-repeating`, `base_type`, `batch`, `BIND-KEY`, `BIND-POS`, `bind-stderr`,
157 `bind-stdin`, `bind-stdout`, `bind-udp`, `bits`, `bless`, `block`, `Bool`, `bool-only`,
158 `bounds`, `break`, `Bridge`, `broken`, `BUILD`, `TWEAK`, `build-date`, `bytes`, `cache`,
159 `callframe`, `calling-package`, `CALL-ME`, `callsame`, `callwith`, `can`, `cancel`,
160 `candidates`, `cando`, `can-ok`, `canonpath`, `caps`, `caption`, `Capture`, `capture`,
161 `cas`, `catdir`, `categorize`, `categorize-list`, `catfile`, `catpath`, `cause`, `ceiling`,
162 `cglobal`, `changed`, `Channel`, `channel`, `chars`, `chdir`, `child`, `child-name`,
163 `child-typename`, `chmod`, `chomp`, `chop`, `chr`, `chrs`, `chunks`, `cis`, `classify`,
164 `classify-list`, `cleanup`, `clone`, `close`, `closed`, `close-stdin`, `cmp-ok`, `code`,
165 `codename`, `codes`, `coerce_type`, `coll`, `collate`, `column`, `comb`, `combinations`,
166 `command`, `comment`, `compiler`, `Complex`, `compose`, `composalizer`, `compose_type`,
167 `compose_values`, `composer`, `compute_mro`, `condition`, `config`, `configure_destroy`,
168 `configure_type_checking`, `conj`, `connect`, `constraints`, `construct`, `contains`,
169 `content`, `contents`, `copy`, `cos`, `cosec`, `cosech`, `cosh`, `cotan`, `cotanh`, `count`,
170 `count-only`, `cpu-cores`, `cpu-usage`, `CREATE`, `create_type`, `cross`, `cue`, `curdir`,
171 `curupdir`, `d`, `Date`, `DateTime`, `day`, `daycount`, `day-of-month`, `day-of-week`,
172 `day-of-year`, `days-in-month`, `dd-mm-yyyy`, `declaration`, `decode`, `decoder`, `deepmap`,
173 `default`, `defined`, `DEFINITE`, `definite`, `delayed`, `delete`, `delete-by-compiler`,
174 `DELETE-KEY`, `DELETE-POS`, `denominator`, `desc`, `DESTROY`, `destroyers`, `devnull`,
175 `diag`, `did-you-mean`, `die`, `dies-ok`, `dir`, `dirname`, `distribution`, `dir-sep`,
176 `DISTROnames`, `do`, `does`, `does-ok`, `done`, `done-testing`, `duckmap`, `dynamic`, `e`,
177 `eager`, `earlier`, `elems`, `emit`, `enclosing`, `encode`, `encoder`, `encoding`, `end`,
178 `endian`, `ends-with`, `enum_from_value`, `enum_value_list`, `enum_values`, `enums`, `EOF`,
179 `eof`, `EVAL`, `eval-dies-ok`, `EVALFILE`, `eval-lives-ok`, `event`, `exception`,
180 `excludes-max`, `excludes-min`, `EXISTS-KEY`, `EXISTS-POS`, `exit`, `exitcode`, `exp`,
181 `expected`, `explicitly-manage`, `expmod`, `export_callback`, `extension`, `f`, `fail`,
182 `FALLBACK`, `fails-like`, `fc`, `feature`, `file`, `filename`, `files`, `find`,
183 `find_method`, `find_method_qualified`, `finish`, `first`, `flat`, `first-date-in-month`,
184 `flatmap`, `flip`, `floor`, `flunk`, `flush`, `flush_cache`, `fmt`, `format`, `formatter`,
185 `free-memory`, `freeze`, `from`, `from-list`, `from-loop`, `from-posix`, `from-slurpy`,
186 `full`, `full-barrier`, `GENERATE-USAGE`, `generate_mixin`, `get`, `get_value`, `getc`,
187 `gist`, `got`, `grab`, `grabpairs`, `grep`, `handle`, `handled`, `handles`, `hardware`,
188 `has_accessor`, `Hash`, `hash`, `head`, `headers`, `hh-mm-ss`, `hidden`, `hides`, `hostname`,
189 `hour`, `how`, `hyper`, `id`, `illegal`, `im`, `in`, `in-timezone`, `indent`, `index`,
190 `indices`, `indir`, `infinite`, `infix`, `postcirumfix`, `cicumfix`, `install`,
191 `install_method_cache`, `Instant`, `instead`, `Int`, `int-bounds`, `interval`, `in-timezone`,
192 `invalid-str`, `invert`, `invocant`, `IO`, `IO::Notification.watch-path`, `is_trusted`,
193 `is_type`, `isa`, `is-absolute`, `isa-ok`, `is-approx`, `is-deeply`, `is-hidden`,
194 `is-initial-thread`, `is-int`, `is-lazy`, `is-leap-year`, `isNaN`, `isnt`, `is-prime`,
195 `is-relative`, `is-routine`, `is-setting`, `is-win`, `item`, `iterator`, `join`, `keep`,
196 `kept`, `KERNELnames`, `key`, `keyof`, `keys`, `kill`, `kv`, `kxxv`, `l`, `lang`, `last`,
197 `lastcall`, `later`, `lazy`, `lc`, `leading`, `level`, `like`, `line`, `lines`, `link`,
198 `List`, `list`, `listen`, `live`, `lives-ok`, `load`, `load-repo-id`, `load-unit`, `loaded`,
199 `loads`, `local`, `lock`, `log`, `log10`, `lookup`, `lsb`, `made`, `MAIN`, `make`, `Map`,
200 `map`, `match`, `max`, `maxpairs`, `merge`, `message`, `method`, `meta`, `method_table`,
201 `methods`, `migrate`, `min`, `minmax`, `minpairs`, `minute`, `misplaced`, `Mix`, `mix`,
202 `MixHash`, `mixin`, `mixin_attribute`, `Mixy`, `mkdir`, `mode`, `modified`, `month`, `move`,
203 `mro`, `msb`, `multi`, `multiness`, `name`, `named`, `named_names`, `narrow`,
204 `nativecast`, `native-descriptor`, `nativesizeof`, `need`, `new`, `new_type`,
205 `new-from-daycount`, `new-from-pairs`, `next`, `nextcallee`, `next-handle`, `nextsame`,
206 `nextwith`, `next-interesting-index`, `NFC`, `NFD`, `NFKC`, `NFKD`, `nice`, `nl-in`,
207 `nl-out`, `nodemap`, `nok`, `normalize`, `none`, `norm`, `not`, `note`, `now`, `nude`,
208 `Num`, `numerator`, `Numeric`, `of`, `offset`, `offset-in-hours`, `offset-in-minutes`,
209 `ok`, `old`, `on-close`, `one`, `on-switch`, `open`, `opened`, `operation`, `optional`,
210 `ord`, `ords`, `orig`, `os-error`, `osname`, `out-buffer`, `pack`, `package`, `package-kind`,
211 `package-name`, `packages`, `Pair`, `pair`, `pairs`, `pairup`, `parameter`, `params`,
212 `parent`, `parent-name`, `parents`, `parse`, `parse-base`, `parsefile`, `parse-names`,
213 `parts`, `pass`, `path`, `path-sep`, `payload`, `peer-host`, `peer-port`, `periods`, `perl`,
214 `permutations`, `phaser`, `pick`, `pickpairs`, `pid`, `placeholder`, `plan`, `plus`,
215 `polar`, `poll`, `polymod`, `pop`, `pos`, `positional`, `posix`, `postfix`, `postmatch`,
216 `precomp-ext`, `precomp-target`, `precompiled`, `pred`, `prefix`, `prematch`, `prepend`,
217 `primary`, `print`, `printf`, `print-nl`, `print-to`, `private`, `private_method_names`,
218 `private_method_table`, `proc`, `produce`, `Promise`, `promise`, `prompt`, `protect`,
219 `protect-or-queue-on-recursion`, `publish_method_cache`, `pull-one`, `push`, `push-all`,
220 `push-at-least`, `push-exactly`, `push-until-lazy`, `put`, `qualifier-type`, `quaternary`,
221 `quit`, `r`, `race`, `radix`, `raku`, `rand`, `Range`, `range`, `Rat`, `raw`, `re`, `read`,
222 `read-bits`, `read-int128`, `read-int16`, `read-int32`, `read-int64`, `read-int8`,
223 `read-num32`, `read-num64`, `read-ubits`, `read-uint128`, `read-uint16`, `read-uint32`,
224 `read-uint64`, `read-uint8`, `readchars`, `readonly`, `ready`, `Real`, `reallocate`,
225 `reals`, `reason`, `rebless`, `receive`, `recv`, `redispatcher`, `redo`, `reduce`,
226 `rel2abs`, `relative`, `release`, `remove`, `rename`, `repeated`, `replacement`,
227 `replace-with`, `repo`, `repo-id`, `report`, `required`, `reserved`, `resolve`, `restore`,
228 `result`, `resume`, `rethrow`, `return`, `return-rw`, `returns`, `reverse`, `right`,
229 `rindex`, `rmdir`, `role`, `roles_to_compose`, `rolish`, `roll`, `rootdir`, `roots`,
230 `rotate`, `rotor`, `round`, `roundrobin`, `routine-type`, `run`, `RUN-MAIN`, `rw`, `rwx`,
231 `samecase`, `samemark`, `samewith`, `say`, `schedule-on`, `scheduler`, `scope`, `sec`,
232 `sech`, `second`, `secondary`, `seek`, `self`, `send`, `Seq`, `Set`, `set`, `serial`,
233 `set_hidden`, `set_name`, `set_package`, `set_rw`, `set_value`, `set_api`, `set_auth`,
234 `set_composalizer`, `set_export_callback`, `set_is_mixin`, `set_mixin_attribute`,
235 `set_package`, `set_ver`, `set_why`, `SetHash`, `Setty`, `set-instruments`,
236 `setup_finalization`, `setup_mixin_cache`, `shape`, `share`, `shell`, `short-id`,
237 `short-name`, `shortname`, `shift`, `sibling`, `sigil`, `sign`, `signal`, `signals`,
238 `signature`, `sin`, `sinh`, `sink`, `sink-all`, `skip`, `skip-at-least`,
239 `skip-at-least-pull-one`, `skip-one`, `skip-rest`, `sleep`, `sleep-timer`, `sleep-until`,
240 `Slip`, `slip`, `slurp`, `slurp-rest`, `slurpy`, `snap`, `snapper`, `so`, `socket-host`,
241 `socket-port`, `sort`, `source`, `source-package`, `spawn`, `SPEC`, `splice`, `split`,
242 `splitdir`, `splitpath`, `sprintf`, `spurt`, `sqrt`, `squish`, `srand`, `stable`, `start`,
243 `started`, `starts-with`, `status`, `stderr`, `stdout`, `STORE`, `store-file`,
244 `store-repo-id`, `store-unit`, `Str`, `Stringy`, `sub_signature`, `subbuf`, `subbuf-rw`,
245 `subname`, `subparse`, `subst`, `subst-mutate`, `substr`, `substr-eq`, `substr-rw`,
246 `subtest`, `succ`, `sum`, `suffix`, `summary`, `Supply`, `symlink`, `T`, `t`, `tail`,
247 `take`, `take-rw`, `tan`, `tanh`, `tap`, `target`, `target-name`, `tc`, `tclc`, `tell`,
248 `term`, `tertiary`, `then`, `throttle`, `throw`, `throws-like`, `time`, `timezone`,
249 `tmpdir`, `to`, `today`, `todo`, `toggle`, `to-posix`, `total`, `total-memory`, `trailing`,
250 `trans`, `tree`, `trim`, `trim-leading`, `trim-trailing`, `truncate`, `truncated-to`,
251 `trusts`, `try_acquire`, `trying`, `twigil`, `type`, `type_captures`, `type_check`,
252 `typename`, `uc`, `udp`, `uncaught_handler`, `undefine`, `unimatch`, `unicmp`, `uniname`,
253 `uninames`, `uninstall`, `uniparse`, `uniprop`, `uniprops`, `unique`, `unival`, `univals`,
254 `unlike`, `unlink`, `unlock`, `unpack`, `unpolar`, `unset`, `unshift`, `unwrap`, `updir`,
255 `USAGE`, `usage-name`, `use-ok`, `utc`, `val`, `value`, `values`, `VAR`, `variable`, `ver`,
256 `verbose-config`, `Version`, `version`, `VMnames`, `volume`, `vow`, `w`, `wait`, `warn`,
257 `watch`, `watch-path`, `week`, `weekday-of-month`, `week-number`, `week-year`, `WHAT`,
258 `what`, `when`, `WHERE`, `WHEREFORE`, `WHICH`, `WHO`, `whole-second`, `WHY`, `why`,
259 `with-lock-hidden-from-recursion-check`, `wordcase`, `words`, `workaround`, `wrap`,
260 `write`, `write-bits`, `write-int128`, `write-int16`, `write-int32`, `write-int64`,
261 `write-int8`, `write-num32`, `write-num64`, `write-ubits`, `write-uint128`, `write-uint16`,
262 `write-uint32`, `write-uint64`, `write-uint8`, `write-to`, `x`, `yada`, `year`, `yield`,
263 `yyyy-mm-dd`, `z`, `zip`, `zip-latest`, `HOW`, `s`, `DEPRECATED`, `trait_mod`,
264 }
265
266 builtinRoutinesPattern := Words(`(?<!['\w:-])`, `(?!['\w-])`, builtinRoutines...)
267
268 // A map of opening and closing brackets
269 brackets := map[rune]rune{
270 '\u0028': '\u0029', '\u003c': '\u003e', '\u005b': '\u005d',
271 '\u007b': '\u007d', '\u00ab': '\u00bb', '\u0f3a': '\u0f3b',
272 '\u0f3c': '\u0f3d', '\u169b': '\u169c', '\u2018': '\u2019',
273 '\u201a': '\u2019', '\u201b': '\u2019', '\u201c': '\u201d',
274 '\u201e': '\u201d', '\u201f': '\u201d', '\u2039': '\u203a',
275 '\u2045': '\u2046', '\u207d': '\u207e', '\u208d': '\u208e',
276 '\u2208': '\u220b', '\u2209': '\u220c', '\u220a': '\u220d',
277 '\u2215': '\u29f5', '\u223c': '\u223d', '\u2243': '\u22cd',
278 '\u2252': '\u2253', '\u2254': '\u2255', '\u2264': '\u2265',
279 '\u2266': '\u2267', '\u2268': '\u2269', '\u226a': '\u226b',
280 '\u226e': '\u226f', '\u2270': '\u2271', '\u2272': '\u2273',
281 '\u2274': '\u2275', '\u2276': '\u2277', '\u2278': '\u2279',
282 '\u227a': '\u227b', '\u227c': '\u227d', '\u227e': '\u227f',
283 '\u2280': '\u2281', '\u2282': '\u2283', '\u2284': '\u2285',
284 '\u2286': '\u2287', '\u2288': '\u2289', '\u228a': '\u228b',
285 '\u228f': '\u2290', '\u2291': '\u2292', '\u2298': '\u29b8',
286 '\u22a2': '\u22a3', '\u22a6': '\u2ade', '\u22a8': '\u2ae4',
287 '\u22a9': '\u2ae3', '\u22ab': '\u2ae5', '\u22b0': '\u22b1',
288 '\u22b2': '\u22b3', '\u22b4': '\u22b5', '\u22b6': '\u22b7',
289 '\u22c9': '\u22ca', '\u22cb': '\u22cc', '\u22d0': '\u22d1',
290 '\u22d6': '\u22d7', '\u22d8': '\u22d9', '\u22da': '\u22db',
291 '\u22dc': '\u22dd', '\u22de': '\u22df', '\u22e0': '\u22e1',
292 '\u22e2': '\u22e3', '\u22e4': '\u22e5', '\u22e6': '\u22e7',
293 '\u22e8': '\u22e9', '\u22ea': '\u22eb', '\u22ec': '\u22ed',
294 '\u22f0': '\u22f1', '\u22f2': '\u22fa', '\u22f3': '\u22fb',
295 '\u22f4': '\u22fc', '\u22f6': '\u22fd', '\u22f7': '\u22fe',
296 '\u2308': '\u2309', '\u230a': '\u230b', '\u2329': '\u232a',
297 '\u23b4': '\u23b5', '\u2768': '\u2769', '\u276a': '\u276b',
298 '\u276c': '\u276d', '\u276e': '\u276f', '\u2770': '\u2771',
299 '\u2772': '\u2773', '\u2774': '\u2775', '\u27c3': '\u27c4',
300 '\u27c5': '\u27c6', '\u27d5': '\u27d6', '\u27dd': '\u27de',
301 '\u27e2': '\u27e3', '\u27e4': '\u27e5', '\u27e6': '\u27e7',
302 '\u27e8': '\u27e9', '\u27ea': '\u27eb', '\u2983': '\u2984',
303 '\u2985': '\u2986', '\u2987': '\u2988', '\u2989': '\u298a',
304 '\u298b': '\u298c', '\u298d': '\u298e', '\u298f': '\u2990',
305 '\u2991': '\u2992', '\u2993': '\u2994', '\u2995': '\u2996',
306 '\u2997': '\u2998', '\u29c0': '\u29c1', '\u29c4': '\u29c5',
307 '\u29cf': '\u29d0', '\u29d1': '\u29d2', '\u29d4': '\u29d5',
308 '\u29d8': '\u29d9', '\u29da': '\u29db', '\u29f8': '\u29f9',
309 '\u29fc': '\u29fd', '\u2a2b': '\u2a2c', '\u2a2d': '\u2a2e',
310 '\u2a34': '\u2a35', '\u2a3c': '\u2a3d', '\u2a64': '\u2a65',
311 '\u2a79': '\u2a7a', '\u2a7d': '\u2a7e', '\u2a7f': '\u2a80',
312 '\u2a81': '\u2a82', '\u2a83': '\u2a84', '\u2a8b': '\u2a8c',
313 '\u2a91': '\u2a92', '\u2a93': '\u2a94', '\u2a95': '\u2a96',
314 '\u2a97': '\u2a98', '\u2a99': '\u2a9a', '\u2a9b': '\u2a9c',
315 '\u2aa1': '\u2aa2', '\u2aa6': '\u2aa7', '\u2aa8': '\u2aa9',
316 '\u2aaa': '\u2aab', '\u2aac': '\u2aad', '\u2aaf': '\u2ab0',
317 '\u2ab3': '\u2ab4', '\u2abb': '\u2abc', '\u2abd': '\u2abe',
318 '\u2abf': '\u2ac0', '\u2ac1': '\u2ac2', '\u2ac3': '\u2ac4',
319 '\u2ac5': '\u2ac6', '\u2acd': '\u2ace', '\u2acf': '\u2ad0',
320 '\u2ad1': '\u2ad2', '\u2ad3': '\u2ad4', '\u2ad5': '\u2ad6',
321 '\u2aec': '\u2aed', '\u2af7': '\u2af8', '\u2af9': '\u2afa',
322 '\u2e02': '\u2e03', '\u2e04': '\u2e05', '\u2e09': '\u2e0a',
323 '\u2e0c': '\u2e0d', '\u2e1c': '\u2e1d', '\u2e20': '\u2e21',
324 '\u3008': '\u3009', '\u300a': '\u300b', '\u300c': '\u300d',
325 '\u300e': '\u300f', '\u3010': '\u3011', '\u3014': '\u3015',
326 '\u3016': '\u3017', '\u3018': '\u3019', '\u301a': '\u301b',
327 '\u301d': '\u301e', '\ufd3e': '\ufd3f', '\ufe17': '\ufe18',
328 '\ufe35': '\ufe36', '\ufe37': '\ufe38', '\ufe39': '\ufe3a',
329 '\ufe3b': '\ufe3c', '\ufe3d': '\ufe3e', '\ufe3f': '\ufe40',
330 '\ufe41': '\ufe42', '\ufe43': '\ufe44', '\ufe47': '\ufe48',
331 '\ufe59': '\ufe5a', '\ufe5b': '\ufe5c', '\ufe5d': '\ufe5e',
332 '\uff08': '\uff09', '\uff1c': '\uff1e', '\uff3b': '\uff3d',
333 '\uff5b': '\uff5d', '\uff5f': '\uff60', '\uff62': '\uff63',
334 }
335
336 bracketsPattern := `[` + regexp.QuoteMeta(joinRuneMap(brackets)) + `]`
337
338 // Finds opening brackets and their closing counterparts (including pod and heredoc)
339 // and modifies state groups and position accordingly
340 findBrackets := func(tokenClass RakuToken) MutatorFunc {
341 return func(state *LexerState) error {
342 var openingChars []rune
343 var adverbs []rune
344 switch tokenClass {
345 case rakuPod:
346 openingChars = []rune(strings.Join(state.Groups[1:5], ``))
347 default:
348 adverbs = []rune(state.NamedGroups[`adverbs`])
349 openingChars = []rune(state.NamedGroups[`opening_delimiters`])
350 }
351
352 openingChar := openingChars[0]
353
354 nChars := len(openingChars)
355
356 var closingChar rune
357 var closingCharExists bool
358 var closingChars []rune
359
360 switch tokenClass {
361 case rakuPod:
362 closingCharExists = true
363 default:
364 closingChar, closingCharExists = brackets[openingChar]
365 }
366
367 switch tokenClass {
368 case rakuPodFormatter:
369 formatter := StringOther
370
371 switch state.NamedGroups[`keyword`] {
372 case "B":
373 formatter = GenericStrong
374 case "I":
375 formatter = GenericEmph
376 case "U":
377 formatter = GenericUnderline
378 }
379
380 formatterRule := ruleReplacingConfig{
381 pattern: `.+?`,
382 tokenType: formatter,
383 mutator: nil,
384 stateName: `pod-formatter`,
385 rulePosition: bottomRule,
386 }
387
388 err := replaceRule(formatterRule)(state)
389 if err != nil {
390 panic(err)
391 }
392
393 err = replaceRule(ruleReplacingConfig{
394 delimiter: []rune{closingChar},
395 tokenType: Punctuation,
396 stateName: `pod-formatter`,
397 pushState: true,
398 numberOfDelimiterChars: nChars,
399 appendMutator: popRule(formatterRule),
400 })(state)
401 if err != nil {
402 panic(err)
403 }
404
405 return nil
406 case rakuMatchRegex:
407 var delimiter []rune
408 if closingCharExists {
409 delimiter = []rune{closingChar}
410 } else {
411 delimiter = openingChars
412 }
413
414 err := replaceRule(ruleReplacingConfig{
415 delimiter: delimiter,
416 tokenType: Punctuation,
417 stateName: `regex`,
418 popState: true,
419 pushState: true,
420 })(state)
421 if err != nil {
422 panic(err)
423 }
424
425 return nil
426 case rakuSubstitutionRegex:
427 delimiter := regexp2.Escape(string(openingChars))
428
429 err := replaceRule(ruleReplacingConfig{
430 pattern: `(` + delimiter + `)` + `((?:\\\\|\\/|.)*?)` + `(` + delimiter + `)`,
431 tokenType: ByGroups(Punctuation, UsingSelf(`qq`), Punctuation),
432 rulePosition: topRule,
433 stateName: `regex`,
434 popState: true,
435 pushState: true,
436 })(state)
437 if err != nil {
438 panic(err)
439 }
440
441 return nil
442 }
443
444 text := state.Text
445
446 var endPos int
447
448 var nonMirroredOpeningCharPosition int
449
450 if !closingCharExists {
451 // it's not a mirrored character, which means we
452 // just need to look for the next occurrence
453 closingChars = openingChars
454 nonMirroredOpeningCharPosition = indexAt(text, closingChars, state.Pos)
455 endPos = nonMirroredOpeningCharPosition
456 } else {
457 var podRegex *regexp2.Regexp
458 if tokenClass == rakuPod {
459 podRegex = regexp2.MustCompile(
460 state.NamedGroups[`ws`]+`=end`+`\s+`+regexp2.Escape(state.NamedGroups[`name`]),
461 0,
462 )
463 } else {
464 closingChars = []rune(strings.Repeat(string(closingChar), nChars))
465 }
466
467 // we need to look for the corresponding closing character,
468 // keep nesting in mind
469 nestingLevel := 1
470
471 searchPos := state.Pos - nChars
472
473 var nextClosePos int
474
475 for nestingLevel > 0 {
476 if tokenClass == rakuPod {
477 match, err := podRegex.FindRunesMatchStartingAt(text, searchPos+nChars)
478 if err == nil {
479 closingChars = match.Runes()
480 nextClosePos = match.Index
481 } else {
482 nextClosePos = -1
483 }
484 } else {
485 nextClosePos = indexAt(text, closingChars, searchPos+nChars)
486 }
487
488 nextOpenPos := indexAt(text, openingChars, searchPos+nChars)
489
490 switch {
491 case nextClosePos == -1:
492 nextClosePos = len(text)
493 nestingLevel = 0
494 case nextOpenPos != -1 && nextOpenPos < nextClosePos:
495 nestingLevel++
496 nChars = len(openingChars)
497 searchPos = nextOpenPos
498 default: // next_close_pos < next_open_pos
499 nestingLevel--
500 nChars = len(closingChars)
501 searchPos = nextClosePos
502 }
503 }
504
505 endPos = nextClosePos
506 }
507
508 if endPos < 0 {
509 // if we didn't find a closer, just highlight the
510 // rest of the text in this class
511 endPos = len(text)
512 }
513
514 adverbre := regexp.MustCompile(`:to\b|:heredoc\b`)
515 var heredocTerminator []rune
516 var endHeredocPos int
517 if adverbre.MatchString(string(adverbs)) {
518 if endPos != len(text) {
519 heredocTerminator = text[state.Pos:endPos]
520 nChars = len(heredocTerminator)
521 } else {
522 endPos = state.Pos + 1
523 heredocTerminator = []rune{}
524 nChars = 0
525 }
526
527 if nChars > 0 {
528 endHeredocPos = indexAt(text[endPos:], heredocTerminator, 0)
529 if endHeredocPos > -1 {
530 endPos += endHeredocPos
531 } else {
532 endPos = len(text)
533 }
534 }
535 }
536
537 textBetweenBrackets := string(text[state.Pos:endPos])
538 switch tokenClass {
539 case rakuPod, rakuPodDeclaration, rakuNameAttribute:
540 state.NamedGroups[`value`] = textBetweenBrackets
541 state.NamedGroups[`closing_delimiters`] = string(closingChars)
542 case rakuQuote:
543 if len(heredocTerminator) > 0 {
544 // Length of heredoc terminator + closing chars + `;`
545 heredocFristPunctuationLen := nChars + len(openingChars) + 1
546
547 state.NamedGroups[`opening_delimiters`] = string(openingChars) +
548 string(text[state.Pos:state.Pos+heredocFristPunctuationLen])
549
550 state.NamedGroups[`value`] =
551 string(text[state.Pos+heredocFristPunctuationLen : endPos])
552
553 if endHeredocPos > -1 {
554 state.NamedGroups[`closing_delimiters`] = string(heredocTerminator)
555 }
556 } else {
557 state.NamedGroups[`value`] = textBetweenBrackets
558 if nChars > 0 {
559 state.NamedGroups[`closing_delimiters`] = string(closingChars)
560 }
561 }
562 default:
563 state.Groups = []string{state.Groups[0] + string(text[state.Pos:endPos+nChars])}
564 }
565
566 state.Pos = endPos + nChars
567
568 return nil
569 }
570 }
571
572 // Raku rules
573 // Empty capture groups are placeholders and will be replaced by mutators
574 // DO NOT REMOVE THEM!
575 return Rules{
576 "root": {
577 // Placeholder, will be overwritten by mutators, DO NOT REMOVE!
578 {`\A\z`, nil, nil},
579 Include("common"),
580 {`{`, Punctuation, Push(`root`)},
581 {`\(`, Punctuation, Push(`root`)},
582 {`[)}]`, Punctuation, Pop(1)},
583 {`;`, Punctuation, nil},
584 {`\[|\]`, Operator, nil},
585 {`.+?`, Text, nil},
586 },
587 "common": {
588 {`^#![^\n]*$`, CommentHashbang, nil},
589 Include("pod"),
590 // Multi-line, Embedded comment
591 {
592 "#`(?<opening_delimiters>(?<delimiter>" + bracketsPattern + `)\k<delimiter>*)`,
593 CommentMultiline,
594 findBrackets(rakuMultilineComment),
595 },
596 {`#[^\n]*$`, CommentSingle, nil},
597 // /regex/
598 {
599 `(?<=(?:^|\(|=|:|~~|\[|{|,|=>)\s*)(/)(?!\]|\))((?:\\\\|\\/|.)*?)((?<!(?<!\\)\\)/(?!'|"))`,
600 ByGroups(Punctuation, UsingSelf("regex"), Punctuation),
601 nil,
602 },
603 Include("variable"),
604 // ::?VARIABLE
605 {`::\?\w+(?::[_UD])?`, NameVariableGlobal, nil},
606 // Version
607 {
608 `\b(v)(\d+)((?:\.(?:\*|[\d\w]+))*)(\+)?`,
609 ByGroups(Keyword, NumberInteger, NameEntity, Operator),
610 nil,
611 },
612 Include("number"),
613 // Hyperoperator | »*«
614 {`(>>)(\S+?)(<<)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
615 {`(»)(\S+?)(«)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
616 // Hyperoperator | «*«
617 {`(<<)(\S+?)(<<)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
618 {`(«)(\S+?)(«)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
619 // Hyperoperator | »*»
620 {`(>>)(\S+?)(>>)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
621 {`(»)(\S+?)(»)`, ByGroups(Operator, UsingSelf("root"), Operator), nil},
622 // <<quoted words>>
623 {`(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(<<)(?!(?:(?!>>)[^\n])+?[},;] *\n)(?!(?:(?!>>).)+?>>\S+?>>)`, Punctuation, Push("<<")},
624 // «quoted words»
625 {`(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(«)(?![^»]+?[},;] *\n)(?![^»]+?»\S+?»)`, Punctuation, Push("«")},
626 // [<]
627 {`(?<=\[\\?)<(?=\])`, Operator, nil},
628 // < and > operators | something < onething > something
629 {
630 `(?<=[$@%&]?\w[\w':-]* +)(<=?)( *[^ ]+? *)(>=?)(?= *[$@%&]?\w[\w':-]*)`,
631 ByGroups(Operator, UsingSelf("root"), Operator),
632 nil,
633 },
634 // <quoted words>
635 {
636 `(?<!(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+\s+|[\])}]\s+)\s*)(<)((?:(?![,;)}] *(?:#[^\n]+)?\n)[^<>])+?)(>)(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?\w[\w':-]*[^(]|\s+\[))`,
637 ByGroups(Punctuation, String, Punctuation),
638 nil,
639 },
640 {`C?X::['\w:-]+`, NameException, nil},
641 Include("metaoperator"),
642 // Pair | key => value
643 {
644 `(\w[\w'-]*)(\s*)(=>)`,
645 ByGroups(String, Text, Operator),
646 nil,
647 },
648 Include("colon-pair"),
649 // Token
650 {
651 `(?<=(?:^|\s)(?:regex|token|rule)(\s+))` + namePattern + colonPairLookahead + `\s*[({])`,
652 NameFunction,
653 Push("token", "name-adverb"),
654 },
655 // Substitution
656 {`(?<=^|\b|\s)(?<!\.)(ss|S|s|TR|tr)\b(\s*)`, ByGroups(Keyword, Text), Push("substitution")},
657 {keywordsPattern, Keyword, nil},
658 {builtinTypesPattern, NameBuiltin, nil},
659 {builtinRoutinesPattern, NameBuiltin, nil},
660 // Class name
661 {
662 `(?<=(?:^|\s)(?:class|grammar|role|does|but|is|subset|of)\s+)` + namePattern,
663 NameClass,
664 Push("name-adverb"),
665 },
666 // Routine
667 {
668 `(?<=(?:^|\s)(?:sub|method|multi sub|multi)\s+)!?` + namePattern + colonPairLookahead + `\s*[({])`,
669 NameFunction,
670 Push("name-adverb"),
671 },
672 // Constant
673 {`(?<=\bconstant\s+)` + namePattern, NameConstant, Push("name-adverb")},
674 // Namespace
675 {`(?<=\b(?:use|module|package)\s+)` + namePattern, NameNamespace, Push("name-adverb")},
676 Include("operator"),
677 Include("single-quote"),
678 {`(?<!(?<!\\)\\)"`, Punctuation, Push("double-quotes")},
679 // m,rx regex
680 {`(?<=^|\b|\s)(ms|m|rx)\b(\s*)`, ByGroups(Keyword, Text), Push("rx")},
681 // Quote constructs
682 {
683 `(?<=^|\b|\s)(?<keyword>(?:qq|q|Q))(?<adverbs>(?::?(?:heredoc|to|qq|ww|q|w|s|a|h|f|c|b|to|v|x))*)(?<ws>\s*)(?<opening_delimiters>(?<delimiter>[^0-9a-zA-Z:\s])\k<delimiter>*)`,
684 EmitterFunc(quote),
685 findBrackets(rakuQuote),
686 },
687 // Function
688 {
689 `\b` + namePattern + colonPairLookahead + `\()`,
690 NameFunction,
691 Push("name-adverb"),
692 },
693 // Method
694 {
695 `(?<!\.\.[?^*+]?)(?<=(?:\.[?^*+&]?)|self!)` + namePattern + colonPairLookahead + `\b)`,
696 NameFunction,
697 Push("name-adverb"),
698 },
699 // Indirect invocant
700 {namePattern + `(?=\s+\W?['\w:-]+:\W)`, NameFunction, Push("name-adverb")},
701 {`(?<=\W)(?:∅|i|e|𝑒|tau|τ|pi|π|Inf|∞)(?=\W)`, NameConstant, nil},
702 {`(「)([^」]*)(」)`, ByGroups(Punctuation, String, Punctuation), nil},
703 {`(?<=^ *)\b` + namePattern + `(?=:\s*(?:for|while|loop))`, NameLabel, nil},
704 // Sigilless variable
705 {
706 `(?<=\b(?:my|our|constant|let|temp)\s+)\\` + namePattern,
707 NameVariable,
708 Push("name-adverb"),
709 },
710 {namePattern, Name, Push("name-adverb")},
711 },
712 "rx": {
713 Include("colon-pair-attribute"),
714 {
715 `(?<opening_delimiters>(?<delimiter>[^\w:\s])\k<delimiter>*)`,
716 ByGroupNames(
717 map[string]Emitter{
718 `opening_delimiters`: Punctuation,
719 `delimiter`: nil,
720 },
721 ),
722 findBrackets(rakuMatchRegex),
723 },
724 },
725 "substitution": {
726 Include("colon-pair-attribute"),
727 // Substitution | s{regex} = value
728 {
729 `(?<opening_delimiters>(?<delimiter>` + bracketsPattern + `)\k<delimiter>*)`,
730 ByGroupNames(map[string]Emitter{
731 `opening_delimiters`: Punctuation,
732 `delimiter`: nil,
733 }),
734 findBrackets(rakuMatchRegex),
735 },
736 // Substitution | s/regex/string/
737 {
738 `(?<opening_delimiters>[^\w:\s])`,
739 Punctuation,
740 findBrackets(rakuSubstitutionRegex),
741 },
742 },
743 "number": {
744 {`0_?[0-7]+(_[0-7]+)*`, LiteralNumberOct, nil},
745 {`0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*`, LiteralNumberHex, nil},
746 {`0b[01]+(_[01]+)*`, LiteralNumberBin, nil},
747 {
748 `(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?`,
749 LiteralNumberFloat,
750 nil,
751 },
752 {`(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*`, LiteralNumberFloat, nil},
753 {`(?<=\d+)i`, NameConstant, nil},
754 {`\d+(_\d+)*`, LiteralNumberInteger, nil},
755 },
756 "name-adverb": {
757 Include("colon-pair-attribute-keyvalue"),
758 Default(Pop(1)),
759 },
760 "colon-pair": {
761 // :key(value)
762 {colonPairPattern, colonPair(String), findBrackets(rakuNameAttribute)},
763 // :123abc
764 {
765 `(:)(\d+)(\w[\w'-]*)`,
766 ByGroups(Punctuation, UsingSelf("number"), String),
767 nil,
768 },
769 // :key
770 {`(:)(!?)(\w[\w'-]*)`, ByGroups(Punctuation, Operator, String), nil},
771 {`\s+`, Text, nil},
772 },
773 "colon-pair-attribute": {
774 // :key(value)
775 {colonPairPattern, colonPair(NameAttribute), findBrackets(rakuNameAttribute)},
776 // :123abc
777 {
778 `(:)(\d+)(\w[\w'-]*)`,
779 ByGroups(Punctuation, UsingSelf("number"), NameAttribute),
780 nil,
781 },
782 // :key
783 {`(:)(!?)(\w[\w'-]*)`, ByGroups(Punctuation, Operator, NameAttribute), nil},
784 {`\s+`, Text, nil},
785 },
786 "colon-pair-attribute-keyvalue": {
787 // :key(value)
788 {colonPairPattern, colonPair(NameAttribute), findBrackets(rakuNameAttribute)},
789 },
790 "escape-qq": {
791 {
792 `(?<!(?<!\\)\\)(\\qq)(\[)(.+?)(\])`,
793 ByGroups(StringEscape, Punctuation, UsingSelf("qq"), Punctuation),
794 nil,
795 },
796 },
797 `escape-char`: {
798 {`(?<!(?<!\\)\\)(\\[abfrnrt])`, StringEscape, nil},
799 },
800 `escape-single-quote`: {
801 {`(?<!(?<!\\)\\)(\\)(['\\])`, ByGroups(StringEscape, StringSingle), nil},
802 },
803 "escape-c-name": {
804 {
805 `(?<!(?<!\\)\\)(\\[c|C])(\[)(.+?)(\])`,
806 ByGroups(StringEscape, Punctuation, String, Punctuation),
807 nil,
808 },
809 },
810 "escape-hexadecimal": {
811 {
812 `(?<!(?<!\\)\\)(\\[x|X])(\[)([0-9a-fA-F]+)(\])`,
813 ByGroups(StringEscape, Punctuation, NumberHex, Punctuation),
814 nil,
815 },
816 {`(\\[x|X])([0-9a-fA-F]+)`, ByGroups(StringEscape, NumberHex), nil},
817 },
818 "regex": {
819 // Placeholder, will be overwritten by mutators, DO NOT REMOVE!
820 {`\A\z`, nil, nil},
821 Include("regex-escape-class"),
822 Include(`regex-character-escape`),
823 // $(code)
824 {
825 `([$@])((?<!(?<!\\)\\)\()`,
826 ByGroups(Keyword, Punctuation),
827 replaceRule(ruleReplacingConfig{
828 delimiter: []rune(`)`),
829 tokenType: Punctuation,
830 stateName: `root`,
831 pushState: true,
832 }),
833 },
834 // Exclude $/ from variables, because we can't get out of the end of the slash regex: $/;
835 {`\$(?=/)`, NameEntity, nil},
836 // Exclude $ from variables
837 {`\$(?=\z|\s|[^<(\w*!.])`, NameEntity, nil},
838 Include("variable"),
839 Include("escape-c-name"),
840 Include("escape-hexadecimal"),
841 Include("number"),
842 Include("single-quote"),
843 // :my variable code ...
844 {
845 `(?<!(?<!\\)\\)(:)(my|our|state|constant|temp|let)`,
846 ByGroups(Operator, KeywordDeclaration),
847 replaceRule(ruleReplacingConfig{
848 delimiter: []rune(`;`),
849 tokenType: Punctuation,
850 stateName: `root`,
851 pushState: true,
852 }),
853 },
854 // <{code}>
855 {
856 `(?<!(?<!\\)\\)(<)([?!.]*)((?<!(?<!\\)\\){)`,
857 ByGroups(Punctuation, Operator, Punctuation),
858 replaceRule(ruleReplacingConfig{
859 delimiter: []rune(`}>`),
860 tokenType: Punctuation,
861 stateName: `root`,
862 pushState: true,
863 }),
864 },
865 // {code}
866 Include(`closure`),
867 // Properties
868 {`(:)(\w+)`, ByGroups(Punctuation, NameAttribute), nil},
869 // Operator
870 {`\|\||\||&&|&|\.\.|\*\*|%%|%|:|!|<<|«|>>|»|\+|\*\*|\*|\?|=|~|<~~>`, Operator, nil},
871 // Anchors
872 {`\^\^|\^|\$\$|\$`, NameEntity, nil},
873 {`\.`, NameEntity, nil},
874 {`#[^\n]*\n`, CommentSingle, nil},
875 // Lookaround
876 {
877 `(?<!(?<!\\)\\)(<)(\s*)([?!.]+)(\s*)(after|before)`,
878 ByGroups(Punctuation, Text, Operator, Text, OperatorWord),
879 replaceRule(ruleReplacingConfig{
880 delimiter: []rune(`>`),
881 tokenType: Punctuation,
882 stateName: `regex`,
883 pushState: true,
884 }),
885 },
886 {
887 `(?<!(?<!\\)\\)(<)([|!?.]*)(wb|ww|ws|w)(>)`,
888 ByGroups(Punctuation, Operator, OperatorWord, Punctuation),
889 nil,
890 },
891 // <$variable>
892 {
893 `(?<!(?<!\\)\\)(<)([?!.]*)([$@]\w[\w:-]*)(>)`,
894 ByGroups(Punctuation, Operator, NameVariable, Punctuation),
895 nil,
896 },
897 // Capture markers
898 {`(?<!(?<!\\)\\)<\(|\)>`, Operator, nil},
899 {
900 `(?<!(?<!\\)\\)(<)(\w[\w:-]*)(=\.?)`,
901 ByGroups(Punctuation, NameVariable, Operator),
902 Push(`regex-variable`),
903 },
904 {
905 `(?<!(?<!\\)\\)(<)([|!?.&]*)(\w(?:(?!:\s)[\w':-])*)`,
906 ByGroups(Punctuation, Operator, NameFunction),
907 Push(`regex-function`),
908 },
909 {`(?<!(?<!\\)\\)<`, Punctuation, Push("regex-property")},
910 {`(?<!(?<!\\)\\)"`, Punctuation, Push("double-quotes")},
911 {`(?<!(?<!\\)\\)(?:\]|\))`, Punctuation, Pop(1)},
912 {`(?<!(?<!\\)\\)(?:\[|\()`, Punctuation, Push("regex")},
913 {`.+?`, StringRegex, nil},
914 },
915 "regex-class-builtin": {
916 {
917 `\b(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|same|ident)\b`,
918 NameBuiltin,
919 nil,
920 },
921 },
922 "regex-function": {
923 // <function>
924 {`(?<!(?<!\\)\\)>`, Punctuation, Pop(1)},
925 // <function(parameter)>
926 {
927 `\(`,
928 Punctuation,
929 replaceRule(ruleReplacingConfig{
930 delimiter: []rune(`)>`),
931 tokenType: Punctuation,
932 stateName: `root`,
933 popState: true,
934 pushState: true,
935 }),
936 },
937 // <function value>
938 {
939 `\s+`,
940 StringRegex,
941 replaceRule(ruleReplacingConfig{
942 delimiter: []rune(`>`),
943 tokenType: Punctuation,
944 stateName: `regex`,
945 popState: true,
946 pushState: true,
947 }),
948 },
949 // <function: value>
950 {
951 `:`,
952 Punctuation,
953 replaceRule(ruleReplacingConfig{
954 delimiter: []rune(`>`),
955 tokenType: Punctuation,
956 stateName: `root`,
957 popState: true,
958 pushState: true,
959 }),
960 },
961 },
962 "regex-variable": {
963 Include(`regex-starting-operators`),
964 // <var=function(
965 {
966 `(&)?(\w(?:(?!:\s)[\w':-])*)(?=\()`,
967 ByGroups(Operator, NameFunction),
968 Mutators(Pop(1), Push(`regex-function`)),
969 },
970 // <var=function>
971 {`(&)?(\w[\w':-]*)(>)`, ByGroups(Operator, NameFunction, Punctuation), Pop(1)},
972 // <var=
973 Default(Pop(1), Push(`regex-property`)),
974 },
975 "regex-property": {
976 {`(?<!(?<!\\)\\)>`, Punctuation, Pop(1)},
977 Include("regex-class-builtin"),
978 Include("variable"),
979 Include(`regex-starting-operators`),
980 Include("colon-pair-attribute"),
981 {`(?<!(?<!\\)\\)\[`, Punctuation, Push("regex-character-class")},
982 {`\+|\-`, Operator, nil},
983 {`@[\w':-]+`, NameVariable, nil},
984 {`.+?`, StringRegex, nil},
985 },
986 `regex-starting-operators`: {
987 {`(?<=<)[|!?.]+`, Operator, nil},
988 },
989 "regex-escape-class": {
990 {`(?i)\\n|\\t|\\h|\\v|\\s|\\d|\\w`, StringEscape, nil},
991 },
992 `regex-character-escape`: {
993 {`(?<!(?<!\\)\\)(\\)(.)`, ByGroups(StringEscape, StringRegex), nil},
994 },
995 "regex-character-class": {
996 {`(?<!(?<!\\)\\)\]`, Punctuation, Pop(1)},
997 Include("regex-escape-class"),
998 Include("escape-c-name"),
999 Include("escape-hexadecimal"),
1000 Include(`regex-character-escape`),
1001 Include("number"),
1002 {`\.\.`, Operator, nil},
1003 {`.+?`, StringRegex, nil},
1004 },
1005 "metaoperator": {
1006 // Z[=>]
1007 {
1008 `\b([RZX]+)\b(\[)([^\s\]]+?)(\])`,
1009 ByGroups(OperatorWord, Punctuation, UsingSelf("root"), Punctuation),
1010 nil,
1011 },
1012 // Z=>
1013 {`\b([RZX]+)\b([^\s\]]+)`, ByGroups(OperatorWord, UsingSelf("operator")), nil},
1014 },
1015 "operator": {
1016 // Word Operator
1017 {wordOperatorsPattern, OperatorWord, nil},
1018 // Operator
1019 {operatorsPattern, Operator, nil},
1020 },
1021 "pod": {
1022 // Single-line pod declaration
1023 {`(#[|=])\s`, Keyword, Push("pod-single")},
1024 // Multi-line pod declaration
1025 {
1026 "(?<keyword>#[|=])(?<opening_delimiters>(?<delimiter>" + bracketsPattern + `)\k<delimiter>*)(?<value>)(?<closing_delimiters>)`,
1027 ByGroupNames(
1028 map[string]Emitter{
1029 `keyword`: Keyword,
1030 `opening_delimiters`: Punctuation,
1031 `delimiter`: nil,
1032 `value`: UsingSelf("pod-declaration"),
1033 `closing_delimiters`: Punctuation,
1034 }),
1035 findBrackets(rakuPodDeclaration),
1036 },
1037 Include("pod-blocks"),
1038 },
1039 "pod-blocks": {
1040 // =begin code
1041 {
1042 `(?<=^ *)(?<ws> *)(?<keyword>=begin)(?<ws2> +)(?<name>code)(?<config>[^\n]*)(?<value>.*?)(?<ws3>^\k<ws>)(?<end_keyword>=end)(?<ws4> +)\k<name>`,
1043 EmitterFunc(podCode),
1044 nil,
1045 },
1046 // =begin
1047 {
1048 `(?<=^ *)(?<ws> *)(?<keyword>=begin)(?<ws2> +)(?!code)(?<name>\w[\w'-]*)(?<config>[^\n]*)(?<value>)(?<closing_delimiters>)`,
1049 ByGroupNames(
1050 map[string]Emitter{
1051 `ws`: Comment,
1052 `keyword`: Keyword,
1053 `ws2`: StringDoc,
1054 `name`: Keyword,
1055 `config`: EmitterFunc(podConfig),
1056 `value`: UsingSelf("pod-begin"),
1057 `closing_delimiters`: Keyword,
1058 }),
1059 findBrackets(rakuPod),
1060 },
1061 // =for ...
1062 {
1063 `(?<=^ *)(?<ws> *)(?<keyword>=(?:for|defn))(?<ws2> +)(?<name>\w[\w'-]*)(?<config>[^\n]*\n)`,
1064 ByGroups(Comment, Keyword, StringDoc, Keyword, EmitterFunc(podConfig)),
1065 Push("pod-paragraph"),
1066 },
1067 // =config
1068 {
1069 `(?<=^ *)(?<ws> *)(?<keyword>=config)(?<ws2> +)(?<name>\w[\w'-]*)(?<config>[^\n]*\n)`,
1070 ByGroups(Comment, Keyword, StringDoc, Keyword, EmitterFunc(podConfig)),
1071 nil,
1072 },
1073 // =alias
1074 {
1075 `(?<=^ *)(?<ws> *)(?<keyword>=alias)(?<ws2> +)(?<name>\w[\w'-]*)(?<value>[^\n]*\n)`,
1076 ByGroups(Comment, Keyword, StringDoc, Keyword, StringDoc),
1077 nil,
1078 },
1079 // =encoding
1080 {
1081 `(?<=^ *)(?<ws> *)(?<keyword>=encoding)(?<ws2> +)(?<name>[^\n]+)`,
1082 ByGroups(Comment, Keyword, StringDoc, Name),
1083 nil,
1084 },
1085 // =para ...
1086 {
1087 `(?<=^ *)(?<ws> *)(?<keyword>=(?:para|table|pod))(?<config>(?<!\n\s*)[^\n]*\n)`,
1088 ByGroups(Comment, Keyword, EmitterFunc(podConfig)),
1089 Push("pod-paragraph"),
1090 },
1091 // =head1 ...
1092 {
1093 `(?<=^ *)(?<ws> *)(?<keyword>=head\d+)(?<ws2> *)(?<config>#?)`,
1094 ByGroups(Comment, Keyword, GenericHeading, Keyword),
1095 Push("pod-heading"),
1096 },
1097 // =item ...
1098 {
1099 `(?<=^ *)(?<ws> *)(?<keyword>=(?:item\d*|comment|data|[A-Z]+))(?<ws2> *)(?<config>#?)`,
1100 ByGroups(Comment, Keyword, StringDoc, Keyword),
1101 Push("pod-paragraph"),
1102 },
1103 {
1104 `(?<=^ *)(?<ws> *)(?<keyword>=finish)(?<config>[^\n]*)`,
1105 ByGroups(Comment, Keyword, EmitterFunc(podConfig)),
1106 Push("pod-finish"),
1107 },
1108 // ={custom} ...
1109 {
1110 `(?<=^ *)(?<ws> *)(?<name>=\w[\w'-]*)(?<ws2> *)(?<config>#?)`,
1111 ByGroups(Comment, Name, StringDoc, Keyword),
1112 Push("pod-paragraph"),
1113 },
1114 // = podconfig
1115 {
1116 `(?<=^ *)(?<keyword> *=)(?<ws> *)(?<config>(?::\w[\w'-]*(?:` + colonPairOpeningBrackets + `.+?` +
1117 colonPairClosingBrackets + `) *)*\n)`,
1118 ByGroups(Keyword, StringDoc, EmitterFunc(podConfig)),
1119 nil,
1120 },
1121 },
1122 "pod-begin": {
1123 Include("pod-blocks"),
1124 Include("pre-pod-formatter"),
1125 {`.+?`, StringDoc, nil},
1126 },
1127 "pod-declaration": {
1128 Include("pre-pod-formatter"),
1129 {`.+?`, StringDoc, nil},
1130 },
1131 "pod-paragraph": {
1132 {`\n *\n|\n(?=^ *=)`, StringDoc, Pop(1)},
1133 Include("pre-pod-formatter"),
1134 {`.+?`, StringDoc, nil},
1135 },
1136 "pod-single": {
1137 {`\n`, StringDoc, Pop(1)},
1138 Include("pre-pod-formatter"),
1139 {`.+?`, StringDoc, nil},
1140 },
1141 "pod-heading": {
1142 {`\n *\n|\n(?=^ *=)`, GenericHeading, Pop(1)},
1143 Include("pre-pod-formatter"),
1144 {`.+?`, GenericHeading, nil},
1145 },
1146 "pod-finish": {
1147 {`\z`, nil, Pop(1)},
1148 Include("pre-pod-formatter"),
1149 {`.+?`, StringDoc, nil},
1150 },
1151 "pre-pod-formatter": {
1152 // C<code>, B<bold>, ...
1153 {
1154 `(?<keyword>[CBIUDTKRPAELZVMSXN])(?<opening_delimiters><+|«)`,
1155 ByGroups(Keyword, Punctuation),
1156 findBrackets(rakuPodFormatter),
1157 },
1158 },
1159 "pod-formatter": {
1160 // Placeholder rule, will be replaced by mutators. DO NOT REMOVE!
1161 {`>`, Punctuation, Pop(1)},
1162 Include("pre-pod-formatter"),
1163 // Placeholder rule, will be replaced by mutators. DO NOT REMOVE!
1164 {`.+?`, StringOther, nil},
1165 },
1166 "variable": {
1167 {variablePattern, NameVariable, Push("name-adverb")},
1168 {globalVariablePattern, NameVariableGlobal, Push("name-adverb")},
1169 {`[$@]<[^>]+>`, NameVariable, nil},
1170 {`\$[/!¢]`, NameVariable, nil},
1171 {`[$@%]`, NameVariable, nil},
1172 },
1173 "single-quote": {
1174 {`(?<!(?<!\\)\\)'`, Punctuation, Push("single-quote-inner")},
1175 },
1176 "single-quote-inner": {
1177 {`(?<!(?<!(?<!\\)\\)\\)'`, Punctuation, Pop(1)},
1178 Include("escape-single-quote"),
1179 Include("escape-qq"),
1180 {`(?:\\\\|\\[^\\]|[^'\\])+?`, StringSingle, nil},
1181 },
1182 "double-quotes": {
1183 {`(?<!(?<!\\)\\)"`, Punctuation, Pop(1)},
1184 Include("qq"),
1185 },
1186 "<<": {
1187 {`>>(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+|\s+\[))`, Punctuation, Pop(1)},
1188 Include("ww"),
1189 },
1190 "«": {
1191 {`»(?!\s*(?:\d+|\.(?:Int|Numeric)|[$@%]\*?[\w':-]+|\s+\[))`, Punctuation, Pop(1)},
1192 Include("ww"),
1193 },
1194 "ww": {
1195 Include("single-quote"),
1196 Include("qq"),
1197 },
1198 "qq": {
1199 Include("qq-variable"),
1200 Include("closure"),
1201 Include(`escape-char`),
1202 Include("escape-hexadecimal"),
1203 Include("escape-c-name"),
1204 Include("escape-qq"),
1205 {`.+?`, StringDouble, nil},
1206 },
1207 "qq-variable": {
1208 {
1209 `(?<!(?<!\\)\\)(?:` + variablePattern + `|` + globalVariablePattern + `)` + colonPairLookahead + `)`,
1210 NameVariable,
1211 Push("qq-variable-extras", "name-adverb"),
1212 },
1213 },
1214 "qq-variable-extras": {
1215 // Method
1216 {
1217 `(?<operator>\.)(?<method_name>` + namePattern + `)` + colonPairLookahead + `\()`,
1218 ByGroupNames(map[string]Emitter{
1219 `operator`: Operator,
1220 `method_name`: NameFunction,
1221 }),
1222 Push(`name-adverb`),
1223 },
1224 // Function/Signature
1225 {
1226 `\(`, Punctuation, replaceRule(
1227 ruleReplacingConfig{
1228 delimiter: []rune(`)`),
1229 tokenType: Punctuation,
1230 stateName: `root`,
1231 pushState: true,
1232 }),
1233 },
1234 Default(Pop(1)),
1235 },
1236 "Q": {
1237 Include("escape-qq"),
1238 {`.+?`, String, nil},
1239 },
1240 "Q-closure": {
1241 Include("escape-qq"),
1242 Include("closure"),
1243 {`.+?`, String, nil},
1244 },
1245 "Q-variable": {
1246 Include("escape-qq"),
1247 Include("qq-variable"),
1248 {`.+?`, String, nil},
1249 },
1250 "closure": {
1251 {`(?<!(?<!\\)\\){`, Punctuation, replaceRule(
1252 ruleReplacingConfig{
1253 delimiter: []rune(`}`),
1254 tokenType: Punctuation,
1255 stateName: `root`,
1256 pushState: true,
1257 }),
1258 },
1259 },
1260 "token": {
1261 // Token signature
1262 {`\(`, Punctuation, replaceRule(
1263 ruleReplacingConfig{
1264 delimiter: []rune(`)`),
1265 tokenType: Punctuation,
1266 stateName: `root`,
1267 pushState: true,
1268 }),
1269 },
1270 {`{`, Punctuation, replaceRule(
1271 ruleReplacingConfig{
1272 delimiter: []rune(`}`),
1273 tokenType: Punctuation,
1274 stateName: `regex`,
1275 popState: true,
1276 pushState: true,
1277 }),
1278 },
1279 {`\s*`, Text, nil},
1280 Default(Pop(1)),
1281 },
1282 }
1283}
1284
1285// Joins keys of rune map
1286func joinRuneMap(m map[rune]rune) string {
1287 runes := make([]rune, 0, len(m))
1288 for k := range m {
1289 runes = append(runes, k)
1290 }
1291
1292 return string(runes)
1293}
1294
1295// Finds the index of substring in the string starting at position n
1296func indexAt(str []rune, substr []rune, pos int) int {
1297 strFromPos := str[pos:]
1298 text := string(strFromPos)
1299
1300 idx := strings.Index(text, string(substr))
1301 if idx > -1 {
1302 idx = utf8.RuneCountInString(text[:idx])
1303
1304 // Search again if the substr is escaped with backslash
1305 if (idx > 1 && strFromPos[idx-1] == '\\' && strFromPos[idx-2] != '\\') ||
1306 (idx == 1 && strFromPos[idx-1] == '\\') {
1307 idx = indexAt(str[pos:], substr, idx+1)
1308
1309 idx = utf8.RuneCountInString(text[:idx])
1310
1311 if idx < 0 {
1312 return idx
1313 }
1314 }
1315 idx += pos
1316 }
1317
1318 return idx
1319}
1320
1321// Tells if an array of string contains a string
1322func contains(s []string, e string) bool {
1323 for _, value := range s {
1324 if value == e {
1325 return true
1326 }
1327 }
1328 return false
1329}
1330
1331type rulePosition int
1332
1333const (
1334 topRule rulePosition = 0
1335 bottomRule = -1
1336)
1337
1338type ruleMakingConfig struct {
1339 delimiter []rune
1340 pattern string
1341 tokenType Emitter
1342 mutator Mutator
1343 numberOfDelimiterChars int
1344}
1345
1346type ruleReplacingConfig struct {
1347 delimiter []rune
1348 pattern string
1349 tokenType Emitter
1350 numberOfDelimiterChars int
1351 mutator Mutator
1352 appendMutator Mutator
1353 rulePosition rulePosition
1354 stateName string
1355 pop bool
1356 popState bool
1357 pushState bool
1358}
1359
1360// Pops rule from state-stack and replaces the rule with the previous rule
1361func popRule(rule ruleReplacingConfig) MutatorFunc {
1362 return func(state *LexerState) error {
1363 stackName := genStackName(rule.stateName, rule.rulePosition)
1364
1365 stack, ok := state.Get(stackName).([]ruleReplacingConfig)
1366
1367 if ok && len(stack) > 0 {
1368 // Pop from stack
1369 stack = stack[:len(stack)-1]
1370 lastRule := stack[len(stack)-1]
1371 lastRule.pushState = false
1372 lastRule.popState = false
1373 lastRule.pop = true
1374 state.Set(stackName, stack)
1375
1376 // Call replaceRule to use the last rule
1377 err := replaceRule(lastRule)(state)
1378 if err != nil {
1379 panic(err)
1380 }
1381 }
1382
1383 return nil
1384 }
1385}
1386
1387// Replaces a state's rule based on the rule config and position
1388func replaceRule(rule ruleReplacingConfig) MutatorFunc {
1389 return func(state *LexerState) error {
1390 stateName := rule.stateName
1391 stackName := genStackName(rule.stateName, rule.rulePosition)
1392
1393 stack, ok := state.Get(stackName).([]ruleReplacingConfig)
1394 if !ok {
1395 stack = []ruleReplacingConfig{}
1396 }
1397
1398 // If state-stack is empty fill it with the placeholder rule
1399 if len(stack) == 0 {
1400 stack = []ruleReplacingConfig{
1401 {
1402 // Placeholder, will be overwritten by mutators, DO NOT REMOVE!
1403 pattern: `\A\z`,
1404 tokenType: nil,
1405 mutator: nil,
1406 stateName: stateName,
1407 rulePosition: rule.rulePosition,
1408 },
1409 }
1410 state.Set(stackName, stack)
1411 }
1412
1413 var mutator Mutator
1414 mutators := []Mutator{}
1415
1416 switch {
1417 case rule.rulePosition == topRule && rule.mutator == nil:
1418 // Default mutator for top rule
1419 mutators = []Mutator{Pop(1), popRule(rule)}
1420 case rule.rulePosition == topRule && rule.mutator != nil:
1421 // Default mutator for top rule, when rule.mutator is set
1422 mutators = []Mutator{rule.mutator, popRule(rule)}
1423 case rule.mutator != nil:
1424 mutators = []Mutator{rule.mutator}
1425 }
1426
1427 if rule.appendMutator != nil {
1428 mutators = append(mutators, rule.appendMutator)
1429 }
1430
1431 if len(mutators) > 0 {
1432 mutator = Mutators(mutators...)
1433 } else {
1434 mutator = nil
1435 }
1436
1437 ruleConfig := ruleMakingConfig{
1438 pattern: rule.pattern,
1439 delimiter: rule.delimiter,
1440 numberOfDelimiterChars: rule.numberOfDelimiterChars,
1441 tokenType: rule.tokenType,
1442 mutator: mutator,
1443 }
1444
1445 cRule := makeRule(ruleConfig)
1446
1447 switch rule.rulePosition {
1448 case topRule:
1449 state.Rules[stateName][0] = cRule
1450 case bottomRule:
1451 state.Rules[stateName][len(state.Rules[stateName])-1] = cRule
1452 }
1453
1454 // Pop state name from stack if asked. State should be popped first before Pushing
1455 if rule.popState {
1456 err := Pop(1).Mutate(state)
1457 if err != nil {
1458 panic(err)
1459 }
1460 }
1461
1462 // Push state name to stack if asked
1463 if rule.pushState {
1464 err := Push(stateName).Mutate(state)
1465 if err != nil {
1466 panic(err)
1467 }
1468 }
1469
1470 if !rule.pop {
1471 state.Set(stackName, append(stack, rule))
1472 }
1473
1474 return nil
1475 }
1476}
1477
1478// Generates rule replacing stack using state name and rule position
1479func genStackName(stateName string, rulePosition rulePosition) (stackName string) {
1480 switch rulePosition {
1481 case topRule:
1482 stackName = stateName + `-top-stack`
1483 case bottomRule:
1484 stackName = stateName + `-bottom-stack`
1485 }
1486 return
1487}
1488
1489// Makes a compiled rule and returns it
1490func makeRule(config ruleMakingConfig) *CompiledRule {
1491 var rePattern string
1492
1493 if len(config.delimiter) > 0 {
1494 delimiter := string(config.delimiter)
1495
1496 if config.numberOfDelimiterChars > 1 {
1497 delimiter = strings.Repeat(delimiter, config.numberOfDelimiterChars)
1498 }
1499
1500 rePattern = `(?<!(?<!\\)\\)` + regexp2.Escape(delimiter)
1501 } else {
1502 rePattern = config.pattern
1503 }
1504
1505 regex := regexp2.MustCompile(rePattern, regexp2.None)
1506
1507 cRule := &CompiledRule{
1508 Rule: Rule{rePattern, config.tokenType, config.mutator},
1509 Regexp: regex,
1510 }
1511
1512 return cRule
1513}
1514
1515// Emitter for colon pairs, changes token state based on key and brackets
1516func colonPair(tokenClass TokenType) Emitter {
1517 return EmitterFunc(func(groups []string, state *LexerState) Iterator {
1518 iterators := []Iterator{}
1519 tokens := []Token{
1520 {Punctuation, state.NamedGroups[`colon`]},
1521 {Punctuation, state.NamedGroups[`opening_delimiters`]},
1522 {Punctuation, state.NamedGroups[`closing_delimiters`]},
1523 }
1524
1525 // Append colon
1526 iterators = append(iterators, Literator(tokens[0]))
1527
1528 if tokenClass == NameAttribute {
1529 iterators = append(iterators, Literator(Token{NameAttribute, state.NamedGroups[`key`]}))
1530 } else {
1531 var keyTokenState string
1532 keyre := regexp.MustCompile(`^\d+$`)
1533 if keyre.MatchString(state.NamedGroups[`key`]) {
1534 keyTokenState = "common"
1535 } else {
1536 keyTokenState = "Q"
1537 }
1538
1539 // Use token state to Tokenise key
1540 if keyTokenState != "" {
1541 iterator, err := state.Lexer.Tokenise(
1542 &TokeniseOptions{
1543 State: keyTokenState,
1544 Nested: true,
1545 }, state.NamedGroups[`key`])
1546
1547 if err != nil {
1548 panic(err)
1549 } else {
1550 // Append key
1551 iterators = append(iterators, iterator)
1552 }
1553 }
1554 }
1555
1556 // Append punctuation
1557 iterators = append(iterators, Literator(tokens[1]))
1558
1559 var valueTokenState string
1560
1561 switch state.NamedGroups[`opening_delimiters`] {
1562 case "(", "{", "[":
1563 valueTokenState = "root"
1564 case "<<", "«":
1565 valueTokenState = "ww"
1566 case "<":
1567 valueTokenState = "Q"
1568 }
1569
1570 // Use token state to Tokenise value
1571 if valueTokenState != "" {
1572 iterator, err := state.Lexer.Tokenise(
1573 &TokeniseOptions{
1574 State: valueTokenState,
1575 Nested: true,
1576 }, state.NamedGroups[`value`])
1577
1578 if err != nil {
1579 panic(err)
1580 } else {
1581 // Append value
1582 iterators = append(iterators, iterator)
1583 }
1584 }
1585 // Append last punctuation
1586 iterators = append(iterators, Literator(tokens[2]))
1587
1588 return Concaterator(iterators...)
1589 })
1590}
1591
1592// Emitter for quoting constructs, changes token state based on quote name and adverbs
1593func quote(groups []string, state *LexerState) Iterator {
1594 keyword := state.NamedGroups[`keyword`]
1595 adverbsStr := state.NamedGroups[`adverbs`]
1596 iterators := []Iterator{}
1597 tokens := []Token{
1598 {Keyword, keyword},
1599 {StringAffix, adverbsStr},
1600 {Text, state.NamedGroups[`ws`]},
1601 {Punctuation, state.NamedGroups[`opening_delimiters`]},
1602 {Punctuation, state.NamedGroups[`closing_delimiters`]},
1603 }
1604
1605 // Append all tokens before dealing with the main string
1606 iterators = append(iterators, Literator(tokens[:4]...))
1607
1608 var tokenStates []string
1609
1610 // Set tokenStates based on adverbs
1611 adverbs := strings.Split(adverbsStr, ":")
1612 for _, adverb := range adverbs {
1613 switch adverb {
1614 case "c", "closure":
1615 tokenStates = append(tokenStates, "Q-closure")
1616 case "qq":
1617 tokenStates = append(tokenStates, "qq")
1618 case "ww":
1619 tokenStates = append(tokenStates, "ww")
1620 case "s", "scalar", "a", "array", "h", "hash", "f", "function":
1621 tokenStates = append(tokenStates, "Q-variable")
1622 }
1623 }
1624
1625 var tokenState string
1626
1627 switch {
1628 case keyword == "qq" || contains(tokenStates, "qq"):
1629 tokenState = "qq"
1630 case adverbsStr == "ww" || contains(tokenStates, "ww"):
1631 tokenState = "ww"
1632 case contains(tokenStates, "Q-closure") && contains(tokenStates, "Q-variable"):
1633 tokenState = "qq"
1634 case contains(tokenStates, "Q-closure"):
1635 tokenState = "Q-closure"
1636 case contains(tokenStates, "Q-variable"):
1637 tokenState = "Q-variable"
1638 default:
1639 tokenState = "Q"
1640 }
1641
1642 iterator, err := state.Lexer.Tokenise(
1643 &TokeniseOptions{
1644 State: tokenState,
1645 Nested: true,
1646 }, state.NamedGroups[`value`])
1647
1648 if err != nil {
1649 panic(err)
1650 } else {
1651 iterators = append(iterators, iterator)
1652 }
1653
1654 // Append the last punctuation
1655 iterators = append(iterators, Literator(tokens[4]))
1656
1657 return Concaterator(iterators...)
1658}
1659
1660// Emitter for pod config, tokenises the properties with "colon-pair-attribute" state
1661func podConfig(groups []string, state *LexerState) Iterator {
1662 // Tokenise pod config
1663 iterator, err := state.Lexer.Tokenise(
1664 &TokeniseOptions{
1665 State: "colon-pair-attribute",
1666 Nested: true,
1667 }, groups[0])
1668
1669 if err != nil {
1670 panic(err)
1671 } else {
1672 return iterator
1673 }
1674}
1675
1676// Emitter for pod code, tokenises the code based on the lang specified
1677func podCode(groups []string, state *LexerState) Iterator {
1678 iterators := []Iterator{}
1679 tokens := []Token{
1680 {Comment, state.NamedGroups[`ws`]},
1681 {Keyword, state.NamedGroups[`keyword`]},
1682 {Keyword, state.NamedGroups[`ws2`]},
1683 {Keyword, state.NamedGroups[`name`]},
1684 {StringDoc, state.NamedGroups[`value`]},
1685 {Comment, state.NamedGroups[`ws3`]},
1686 {Keyword, state.NamedGroups[`end_keyword`]},
1687 {Keyword, state.NamedGroups[`ws4`]},
1688 {Keyword, state.NamedGroups[`name`]},
1689 }
1690
1691 // Append all tokens before dealing with the pod config
1692 iterators = append(iterators, Literator(tokens[:4]...))
1693
1694 // Tokenise pod config
1695 iterators = append(iterators, podConfig([]string{state.NamedGroups[`config`]}, state))
1696
1697 langMatch := regexp.MustCompile(`:lang\W+(\w+)`).FindStringSubmatch(state.NamedGroups[`config`])
1698 var lang string
1699 if len(langMatch) > 1 {
1700 lang = langMatch[1]
1701 }
1702
1703 // Tokenise code based on lang property
1704 sublexer := Get(lang)
1705 if sublexer != nil {
1706 iterator, err := sublexer.Tokenise(nil, state.NamedGroups[`value`])
1707
1708 if err != nil {
1709 panic(err)
1710 } else {
1711 iterators = append(iterators, iterator)
1712 }
1713 } else {
1714 iterators = append(iterators, Literator(tokens[4]))
1715 }
1716
1717 // Append the rest of the tokens
1718 iterators = append(iterators, Literator(tokens[5:]...))
1719
1720 return Concaterator(iterators...)
1721}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/rst.go b/vendor/github.com/alecthomas/chroma/v2/lexers/rst.go
new file mode 100644
index 0000000..66ec03c
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/rst.go
@@ -0,0 +1,89 @@
1package lexers
2
3import (
4 "strings"
5
6 . "github.com/alecthomas/chroma/v2" // nolint
7)
8
9// Restructuredtext lexer.
10var Restructuredtext = Register(MustNewLexer(
11 &Config{
12 Name: "reStructuredText",
13 Aliases: []string{"rst", "rest", "restructuredtext"},
14 Filenames: []string{"*.rst", "*.rest"},
15 MimeTypes: []string{"text/x-rst", "text/prs.fallenstein.rst"},
16 },
17 restructuredtextRules,
18))
19
20func restructuredtextRules() Rules {
21 return Rules{
22 "root": {
23 {"^(=+|-+|`+|:+|\\.+|\\'+|\"+|~+|\\^+|_+|\\*+|\\++|#+)([ \\t]*\\n)(.+)(\\n)(\\1)(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text, GenericHeading, Text), nil},
24 {"^(\\S.*)(\\n)(={3,}|-{3,}|`{3,}|:{3,}|\\.{3,}|\\'{3,}|\"{3,}|~{3,}|\\^{3,}|_{3,}|\\*{3,}|\\+{3,}|#{3,})(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text), nil},
25 {`^(\s*)([-*+])( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
26 {`^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
27 {`^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
28 {`^(\s*)([A-Z]+\.)( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
29 {`^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil},
30 {`^(\s*)(\|)( .+\n(?:\| .+\n)*)`, ByGroups(Text, Operator, UsingSelf("inline")), nil},
31 {`^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)`, EmitterFunc(rstCodeBlock), nil},
32 {`^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil},
33 {`^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil},
34 {`^( *\.\.)(\s*)(\[.+\])(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil},
35 {`^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, NameTag, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil},
36 {`^ *\.\..*(\n( +.*\n|\n)+)?`, CommentPreproc, nil},
37 {`^( *)(:[a-zA-Z-]+:)(\s*)$`, ByGroups(Text, NameClass, Text), nil},
38 {`^( *)(:.*?:)([ \t]+)(.*?)$`, ByGroups(Text, NameClass, Text, NameFunction), nil},
39 {`^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)`, ByGroups(UsingSelf("inline"), UsingSelf("inline")), nil},
40 {`(::)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\3.*|)\n)+)`, ByGroups(LiteralStringEscape, Text, LiteralString, LiteralString, Text, LiteralString), nil},
41 Include("inline"),
42 },
43 "inline": {
44 {`\\.`, Text, nil},
45 {"``", LiteralString, Push("literal")},
46 {"(`.+?)(<.+?>)(`__?)", ByGroups(LiteralString, LiteralStringInterpol, LiteralString), nil},
47 {"`.+?`__?", LiteralString, nil},
48 {"(`.+?`)(:[a-zA-Z0-9:-]+?:)?", ByGroups(NameVariable, NameAttribute), nil},
49 {"(:[a-zA-Z0-9:-]+?:)(`.+?`)", ByGroups(NameAttribute, NameVariable), nil},
50 {`\*\*.+?\*\*`, GenericStrong, nil},
51 {`\*.+?\*`, GenericEmph, nil},
52 {`\[.*?\]_`, LiteralString, nil},
53 {`<.+?>`, NameTag, nil},
54 {"[^\\\\\\n\\[*`:]+", Text, nil},
55 {`.`, Text, nil},
56 },
57 "literal": {
58 {"[^`]+", LiteralString, nil},
59 {"``((?=$)|(?=[-/:.,; \\n\\x00\\\u2010\\\u2011\\\u2012\\\u2013\\\u2014\\\u00a0\\'\\\"\\)\\]\\}\\>\\\u2019\\\u201d\\\u00bb\\!\\?]))", LiteralString, Pop(1)},
60 {"`", LiteralString, nil},
61 },
62 }
63}
64
65func rstCodeBlock(groups []string, state *LexerState) Iterator {
66 iterators := []Iterator{}
67 tokens := []Token{
68 {Punctuation, groups[1]},
69 {Text, groups[2]},
70 {OperatorWord, groups[3]},
71 {Punctuation, groups[4]},
72 {Text, groups[5]},
73 {Keyword, groups[6]},
74 {Text, groups[7]},
75 }
76 code := strings.Join(groups[8:], "")
77 lexer := Get(groups[6])
78 if lexer == nil {
79 tokens = append(tokens, Token{String, code})
80 iterators = append(iterators, Literator(tokens...))
81 } else {
82 sub, err := lexer.Tokenise(nil, code)
83 if err != nil {
84 panic(err)
85 }
86 iterators = append(iterators, Literator(tokens...), sub)
87 }
88 return Concaterator(iterators...)
89}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go b/vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go
new file mode 100644
index 0000000..38e0245
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go
@@ -0,0 +1,42 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Smarty lexer.
8var Smarty = Register(MustNewLexer(
9 &Config{
10 Name: "Smarty",
11 Aliases: []string{"smarty"},
12 Filenames: []string{"*.tpl"},
13 MimeTypes: []string{"application/x-smarty"},
14 DotAll: true,
15 },
16 smartyRules,
17))
18
19func smartyRules() Rules {
20 return Rules{
21 "root": {
22 {`[^{]+`, Other, nil},
23 {`(\{)(\*.*?\*)(\})`, ByGroups(CommentPreproc, Comment, CommentPreproc), nil},
24 {`(\{php\})(.*?)(\{/php\})`, ByGroups(CommentPreproc, Using("PHP"), CommentPreproc), nil},
25 {`(\{)(/?[a-zA-Z_]\w*)(\s*)`, ByGroups(CommentPreproc, NameFunction, Text), Push("smarty")},
26 {`\{`, CommentPreproc, Push("smarty")},
27 },
28 "smarty": {
29 {`\s+`, Text, nil},
30 {`\{`, CommentPreproc, Push()},
31 {`\}`, CommentPreproc, Pop(1)},
32 {`#[a-zA-Z_]\w*#`, NameVariable, nil},
33 {`\$[a-zA-Z_]\w*(\.\w+)*`, NameVariable, nil},
34 {`[~!%^&*()+=|\[\]:;,.<>/?@-]`, Operator, nil},
35 {`(true|false|null)\b`, KeywordConstant, nil},
36 {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil},
37 {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil},
38 {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil},
39 {`[a-zA-Z_]\w*`, NameAttribute, nil},
40 },
41 }
42}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go b/vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go
new file mode 100644
index 0000000..39211c4
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/svelte.go
@@ -0,0 +1,70 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Svelte lexer.
8var Svelte = Register(DelegatingLexer(HTML, MustNewLexer(
9 &Config{
10 Name: "Svelte",
11 Aliases: []string{"svelte"},
12 Filenames: []string{"*.svelte"},
13 MimeTypes: []string{"application/x-svelte"},
14 DotAll: true,
15 },
16 svelteRules,
17)))
18
19func svelteRules() Rules {
20 return Rules{
21 "root": {
22 // Let HTML handle the comments, including comments containing script and style tags
23 {`<!--`, Other, Push("comment")},
24 {
25 // Highlight script and style tags based on lang attribute
26 // and allow attributes besides lang
27 `(<\s*(?:script|style).*?lang\s*=\s*['"])` +
28 `(.+?)(['"].*?>)` +
29 `(.+?)` +
30 `(<\s*/\s*(?:script|style)\s*>)`,
31 UsingByGroup(2, 4, Other, Other, Other, Other, Other),
32 nil,
33 },
34 {
35 // Make sure `{` is not inside script or style tags
36 `(?<!<\s*(?:script|style)(?:(?!(?:script|style)\s*>).)*?)` +
37 `{` +
38 `(?!(?:(?!<\s*(?:script|style)).)*?(?:script|style)\s*>)`,
39 Punctuation,
40 Push("templates"),
41 },
42 // on:submit|preventDefault
43 {`(?<=\s+on:\w+(?:\|\w+)*)\|(?=\w+)`, Operator, nil},
44 {`.+?`, Other, nil},
45 },
46 "comment": {
47 {`-->`, Other, Pop(1)},
48 {`.+?`, Other, nil},
49 },
50 "templates": {
51 {`}`, Punctuation, Pop(1)},
52 // Let TypeScript handle strings and the curly braces inside them
53 {`(?<!(?<!\\)\\)(['"` + "`])" + `.*?(?<!(?<!\\)\\)\1`, Using("TypeScript"), nil},
54 // If there is another opening curly brace push to templates again
55 {"{", Punctuation, Push("templates")},
56 {`@(debug|html)\b`, Keyword, nil},
57 {
58 `(#await)(\s+)(\w+)(\s+)(then|catch)(\s+)(\w+)`,
59 ByGroups(Keyword, Text, Using("TypeScript"), Text,
60 Keyword, Text, Using("TypeScript"),
61 ),
62 nil,
63 },
64 {`(#|/)(await|each|if|key)\b`, Keyword, nil},
65 {`(:else)(\s+)(if)?\b`, ByGroups(Keyword, Text, Keyword), nil},
66 {`:(catch|then)\b`, Keyword, nil},
67 {`[^{}]+`, Using("TypeScript"), nil},
68 },
69 }
70}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go b/vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go
new file mode 100644
index 0000000..102d995
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/typoscript.go
@@ -0,0 +1,85 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Typoscript lexer.
8var Typoscript = Register(MustNewLexer(
9 &Config{
10 Name: "TypoScript",
11 Aliases: []string{"typoscript"},
12 Filenames: []string{"*.ts"},
13 MimeTypes: []string{"text/x-typoscript"},
14 DotAll: true,
15 Priority: 0.1,
16 },
17 typoscriptRules,
18))
19
20func typoscriptRules() Rules {
21 return Rules{
22 "root": {
23 Include("comment"),
24 Include("constant"),
25 Include("html"),
26 Include("label"),
27 Include("whitespace"),
28 Include("keywords"),
29 Include("punctuation"),
30 Include("operator"),
31 Include("structure"),
32 Include("literal"),
33 Include("other"),
34 },
35 "keywords": {
36 {`(\[)(?i)(browser|compatVersion|dayofmonth|dayofweek|dayofyear|device|ELSE|END|GLOBAL|globalString|globalVar|hostname|hour|IP|language|loginUser|loginuser|minute|month|page|PIDinRootline|PIDupinRootline|system|treeLevel|useragent|userFunc|usergroup|version)([^\]]*)(\])`, ByGroups(LiteralStringSymbol, NameConstant, Text, LiteralStringSymbol), nil},
37 {`(?=[\w\-])(HTMLparser|HTMLparser_tags|addParams|cache|encapsLines|filelink|if|imageLinkWrap|imgResource|makelinks|numRows|numberFormat|parseFunc|replacement|round|select|split|stdWrap|strPad|tableStyle|tags|textStyle|typolink)(?![\w\-])`, NameFunction, nil},
38 {`(?:(=?\s*<?\s+|^\s*))(cObj|field|config|content|constants|FEData|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_[^:.\s]*|types|xmlnews|INCLUDE_TYPOSCRIPT|_CSS_DEFAULT_STYLE|_DEFAULT_PI_VARS|_LOCAL_LANG)(?![\w\-])`, ByGroups(Operator, NameBuiltin), nil},
39 {`(?=[\w\-])(CASE|CLEARGIF|COA|COA_INT|COBJ_ARRAY|COLUMNS|CONTENT|CTABLE|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|FORM|HMENU|HRULER|HTML|IMAGE|IMGTEXT|IMG_RESOURCE|LOAD_REGISTER|MEDIA|MULTIMEDIA|OTABLE|PAGE|QTOBJECT|RECORDS|RESTORE_REGISTER|SEARCHRESULT|SVG|SWFOBJECT|TEMPLATE|TEXT|USER|USER_INT)(?![\w\-])`, NameClass, nil},
40 {`(?=[\w\-])(ACTIFSUBRO|ACTIFSUB|ACTRO|ACT|CURIFSUBRO|CURIFSUB|CURRO|CUR|IFSUBRO|IFSUB|NO|SPC|USERDEF1RO|USERDEF1|USERDEF2RO|USERDEF2|USRRO|USR)`, NameClass, nil},
41 {`(?=[\w\-])(GMENU_FOLDOUT|GMENU_LAYERS|GMENU|IMGMENUITEM|IMGMENU|JSMENUITEM|JSMENU|TMENUITEM|TMENU_LAYERS|TMENU)`, NameClass, nil},
42 {`(?=[\w\-])(PHP_SCRIPT(_EXT|_INT)?)`, NameClass, nil},
43 {`(?=[\w\-])(userFunc)(?![\w\-])`, NameFunction, nil},
44 },
45 "whitespace": {
46 {`\s+`, Text, nil},
47 },
48 "html": {
49 {`<\S[^\n>]*>`, Using("TypoScriptHTMLData"), nil},
50 {`&[^;\n]*;`, LiteralString, nil},
51 {`(_CSS_DEFAULT_STYLE)(\s*)(\()(?s)(.*(?=\n\)))`, ByGroups(NameClass, Text, LiteralStringSymbol, Using("TypoScriptCSSData")), nil},
52 },
53 "literal": {
54 {`0x[0-9A-Fa-f]+t?`, LiteralNumberHex, nil},
55 {`[0-9]+`, LiteralNumberInteger, nil},
56 {`(###\w+###)`, NameConstant, nil},
57 },
58 "label": {
59 {`(EXT|FILE|LLL):[^}\n"]*`, LiteralString, nil},
60 {`(?![^\w\-])([\w\-]+(?:/[\w\-]+)+/?)(\S*\n)`, ByGroups(LiteralString, LiteralString), nil},
61 },
62 "punctuation": {
63 {`[,.]`, Punctuation, nil},
64 },
65 "operator": {
66 {`[<>,:=.*%+|]`, Operator, nil},
67 },
68 "structure": {
69 {`[{}()\[\]\\]`, LiteralStringSymbol, nil},
70 },
71 "constant": {
72 {`(\{)(\$)((?:[\w\-]+\.)*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, Operator, NameConstant, NameConstant, LiteralStringSymbol), nil},
73 {`(\{)([\w\-]+)(\s*:\s*)([\w\-]+)(\})`, ByGroups(LiteralStringSymbol, NameConstant, Operator, NameConstant, LiteralStringSymbol), nil},
74 {`(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\b)`, LiteralStringChar, nil},
75 },
76 "comment": {
77 {`(?<!(#|\'|"))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|//[^\n]*)`, Comment, nil},
78 {`/\*(?:(?!\*/).)*\*/`, Comment, nil},
79 {`(\s*#\s*\n)`, Comment, nil},
80 },
81 "other": {
82 {`[\w"\-!/&;]+`, Text, nil},
83 },
84 }
85}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/v.go b/vendor/github.com/alecthomas/chroma/v2/lexers/v.go
new file mode 100644
index 0000000..11561b3
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/v.go
@@ -0,0 +1,173 @@
1package lexers
2
3import (
4 "strings"
5
6 . "github.com/alecthomas/chroma/v2" // nolint
7)
8
9// V lexer.
10var V = Register(MustNewLexer(
11 &Config{
12 Name: "V",
13 Aliases: []string{"v", "vlang"},
14 Filenames: []string{"*.v", "*.vv", "v.mod"},
15 MimeTypes: []string{"text/x-v"},
16 EnsureNL: true,
17 },
18 vRules,
19).SetAnalyser(func(text string) float32 {
20 if strings.Contains(text, "import ") && strings.Contains(text, "module ") {
21 return 0.2
22 }
23 if strings.Contains(text, "module ") {
24 return 0.1
25 }
26 return 0.0
27}))
28
29const (
30 namePattern = `[^\W\d]\w*`
31 typeNamePattern = `[A-Z]\w*`
32 multiLineCommentPattern = `/\*(?:.|\n)*?\*/`
33)
34
35func vRules() Rules {
36 return Rules{
37 "root": {
38 {`\n`, Text, nil},
39 {`\s+`, Text, nil},
40 {`\\\n`, Text, nil},
41 {`(?<=module\s+\w[^\n]*\s+)(//[^\n]+\n)+(?=\n)`, StringDoc, nil},
42 {`(// *)(\w+)([^\n]+\n)(?=(?://[^\n]*\n)* *(?:pub +)?(?:fn|struct|union|type|interface|enum|const) +\2\b)`, ByGroups(StringDoc, GenericEmph, StringDoc), Push(`string-doc`)},
43 {`//[^\n]*\n`, CommentSingle, nil},
44 {`/\*(?:(?:` + multiLineCommentPattern + `)*|.|\n)*\*/`, CommentMultiline, nil},
45 {`\b(import|module)\b`, KeywordNamespace, nil},
46 {`\b(fn|struct|union|map|chan|type|interface|enum|const|mut|shared|pub|__global)\b`, KeywordDeclaration, nil},
47 {`\?`, KeywordDeclaration, nil},
48 {`(?<=\)\s*)!`, KeywordDeclaration, nil},
49 {`[ \t]*#include[^\n]+`, Using(`c`), nil},
50 {`[ \t]*#\w[^\n]*`, CommentPreproc, nil},
51 {`(sql)(\s+)(\w+)(\s+)({)([^}]*?)(})`, ByGroups(Keyword, Text, Name, Text, Punctuation, Using(`sql`), Punctuation), nil},
52 {`\$(?=\w)`, Operator, nil},
53 {`(?<=\$)(?:embed_file|pkgconfig|tmpl|env|compile_error|compile_warn)`, NameBuiltin, nil},
54 {`(asm)(\s+)(\w+)(\s*)({)([^}]*?)(})`, ByGroups(Keyword, Text, KeywordType, Text, Punctuation, Using(`nasm`), Punctuation), nil},
55 {`\b_(?:un)?likely_(?=\()`, NameFunctionMagic, nil},
56 {`(?<=\$if.+?(?:&&|\|\|)?)(` + Words(``, ``, `windows`, `linux`, `macos`, `mac`, `darwin`, `ios`, `android`, `mach`, `dragonfly`, `gnu`, `hpux`, `haiku`, `qnx`, `solaris`, `gcc`, `tinyc`, `clang`, `mingw`, `msvc`, `cplusplus`, `amd64`, `arm64`, `x64`, `x32`, `little_endian`, `big_endian`, `debug`, `prod`, `test`, `js`, `glibc`, `prealloc`, `no_bounds_checking`, `freestanding`, `no_segfault_handler`, `no_backtrace`, `no_main`) + `)+`, NameBuiltin, nil},
57 {`@` + Words(``, `\b`, `FN`, `METHOD`, `MOD`, `STRUCT`, `FILE`, `LINE`, `COLUMN`, `VEXE`, `VEXEROOT`, `VHASH`, `VMOD_FILE`, `VMODROOT`), NameVariableMagic, nil},
58 {Words(`\b(?<!@)`, `\b`, `break`, `select`, `match`, `defer`, `go`, `goto`, `else`, `if`, `continue`, `for`, `return`, `assert`, `or`, `as`, `atomic`, `isreftype`, `is`, `in`, `lock`, `rlock`, `sizeof`, `typeof`, `unsafe`, `volatile`, `static`, `__offsetof`), Keyword, nil},
59 {`\b(?<!@)(none|true|false|si_s_code|si_g32_code|si_g64_code)\b`, KeywordConstant, nil},
60 {Words(`\b(?<!@)`, `(?=\()`, `u8`, `u16`, `u32`, `u64`, `u128`, `int`, `i8`, `i16`, `i64`, `i128`, `f32`, `f64`, `rune`, `string`, `bool`, `usize`, `isize`, `any`, `error`, `print`, `println`, `dump`, `panic`, `eprint`, `eprintln`, `copy`, `close`, `len`, `map`, `filter`, `cap`, `delete`, `delete_many`, `delete_last`, `c_error_number_str`, `compare_strings`, `cstring_to_vstring`, `error_with_code`, `exit`, `f32_abs`, `f32_max`, `f32_min`, `f64_max`, `flush_stderr`, `flush_stdout`, `free`, `gc_check_leaks`, `get_str_intp_u32_format`, `get_str_intp_u64_format`, `isnil`, `malloc`, `malloc_noscan`, `memdup`, `memdup_noscan`, `panic_error_number`, `panic_lasterr`, `panic_optional_not_set`, `panic_result_not_set`, `print_backtrace`, `proc_pidpath`, `ptr_str`, `realloc_data`, `str_intp`, `str_intp_g32`, `str_intp_g64`, `str_intp_rune`, `str_intp_sq`, `str_intp_sub`, `string_from_wide`, `string_from_wide2`, `tos`, `tos2`, `tos3`, `tos4`, `tos5`, `tos_clone`, `utf32_decode_to_buffer`, `utf32_to_str`, `utf32_to_str_no_malloc`, `utf8_char_len`, `utf8_getchar`, `utf8_str_visible_length`, `v_realloc`, `vcalloc`, `vcalloc_noscan`, `vmemcmp`, `vmemcpy`, `vmemmove`, `vmemset`, `vstrlen`, `vstrlen_char`, `winapi_lasterr_str`, `reduce`, `string`, `join`, `free`, `join_lines`, `sort_by_len`, `sort_ignore_case`, `str`, `byterune`, `bytestr`, `clone`, `hex`, `utf8_to_utf32`, `vbytes`, `vstring`, `vstring_literal`, `vstring_literal_with_len`, `vstring_with_len`, `try_pop`, `try_push`, `strg`, `strsci`, `strlong`, `eq_epsilon`, `hex_full`, `hex2`, `msg`, `code`, `repeat`, `bytes`, `length_in_bytes`, `ascii_str`, `is_alnum`, `is_bin_digit`, `is_capital`, `is_digit`, `is_hex_digit`, `is_letter`, `is_oct_digit`, `is_space`, `str_escaped`, `repeat_to_depth`, `insert`, `prepend`, `trim`, `drop`, `first`, `last`, `pop`, `clone_to_depth`, `push_many`, `reverse_in_place`, `reverse`, `any`, `all`, `sort`, `sort_with_compare`, `contains`, `index`, `grow_cap`, `grow_len`, `pointers`, `move`, `keys`, `after`, `after_char`, `all_after`, `all_after_last`, `all_before`, `all_before_last`, `before`, `capitalize`, `compare`, `contains_any`, `contains_any_substr`, `count`, `ends_with`, `fields`, `find_between`, `hash`, `index_after`, `index_any`, `index_u8`, `is_lower`, `is_title`, `is_upper`, `last_index`, `last_index_u8`, `len_utf8`, `limit`, `match_glob`, `parse_int`, `parse_uint`, `replace`, `replace_each`, `replace_once`, `runes`, `split`, `split_any`, `split_into_lines`, `split_nth`, `starts_with`, `starts_with_capital`, `strip_margin`, `strip_margin_custom`, `substr`, `substr_ni`, `substr_with_check`, `title`, `to_lower`, `to_upper`, `to_wide`, `trim_left`, `trim_right`, `trim_space`, `trim_string_left`, `trim_string_right`, `utf32_code`), NameBuiltin, nil},
61 {Words(`\b(?<!@)`, `\b`, `ArrayFlags`, `AttributeKind`, `ChanState`, `StrIntpType`, `array`, `Error`, `FieldData`, `FunctionData`, `map`, `MethodArgs`, `SortedMap`, `string`, `StrIntpCgenData`, `StrIntpData`, `StrIntpMem`, `StructAttribute`, `VAssertMetaInfo`), NameBuiltin, nil},
62 {Words(`\b(?<!@)`, `\b`, `u8`, `u16`, `u32`, `u64`, `u128`, `int`, `i8`, `i16`, `i64`, `i128`, `f32`, `f64`, `rune`, `string`, `bool`, `usize`, `isize`, `any`, `error`, `voidptr`), KeywordType, nil},
63 {`\bit\b`, NameVariableMagic, nil},
64 {`(?<!fn\s+)(?<=\w+\s+|^)\[(?=:if +)?(?=\w+)`, Punctuation, Push(`attribute`)},
65 {`(<<=|>>=|>>>=|>>>|<<|>>|<=|>=|\^=|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|\.\.|[+\-*/%&|^~=#@!])`, Operator, nil},
66 {`[\d_]+(\.\d+e[+\-]?\d+|\.\d+|e[+\-]?\d+)`, LiteralNumberFloat, nil},
67 {`\.\d+(e[+\-]?\d+)?`, LiteralNumberFloat, nil},
68 {`0o[0-7_]+`, LiteralNumberOct, nil},
69 {`0x[0-9a-fA-F_]+`, LiteralNumberHex, nil},
70 {`0b[01_]+`, LiteralNumberBin, nil},
71 {`(0|[1-9][0-9_]*)`, LiteralNumberInteger, nil},
72 {"`", StringChar, Push(`char`)},
73 Include(`strings`),
74 {`@?` + typeNamePattern, NameClass, nil},
75 {`(?<=` + namePattern + `)(<)(` + typeNamePattern + `)(>)`, ByGroups(Punctuation, NameClass, Punctuation), nil},
76 {`@?` + namePattern + `(?=\()`, NameFunction, nil},
77 {`(?<=fn\s+)@?` + namePattern + `(?=\s*\()`, NameFunction, nil},
78 {`(?<=(?:continue|break|goto)\s+)\w+`, NameLabel, nil},
79 {`\b` + namePattern + `(?=:(?:$|\s+for))`, NameLabel, nil},
80 {`[<>()\[\]{}.,;:]`, Punctuation, nil},
81 {`@?` + namePattern, NameVariable, nil},
82 },
83 "strings": {
84 {`(c)?(")`, ByGroups(StringAffix, StringDouble), Push(`string-double`)},
85 {`(c)?(')`, ByGroups(StringAffix, StringSingle), Push(`string-single`)},
86 {`(r)("[^"]+")`, ByGroups(StringAffix, String), nil},
87 {`(r)('[^']+')`, ByGroups(StringAffix, String), nil},
88 },
89 "string-double": {
90 {`"`, StringDouble, Pop(1)},
91 Include(`char-escape`),
92 {`(\$)((?!\\){)`, ByGroups(Operator, Punctuation), Push(`string-curly-interpolation`)},
93 {`\$`, Operator, Push(`string-interpolation`)},
94 {`[^"]+?`, StringDouble, nil},
95 },
96 "string-single": {
97 {`'`, StringSingle, Pop(1)},
98 Include(`char-escape`),
99 {`(\$)((?!\\){)`, ByGroups(Operator, Punctuation), Push(`string-curly-interpolation`)},
100 {`\$`, Operator, Push(`string-interpolation`)},
101 {`[^']+?`, StringSingle, nil},
102 },
103 "char": {
104 {"`", StringChar, Pop(1)},
105 Include(`char-escape`),
106 {`[^\\]`, StringChar, nil},
107 },
108 "char-escape": {
109 {"\\\\[`'\"\\\\abfnrtv$]|\\\\x[0-9a-fA-F]{2}|\\\\[0-7]{1,3}|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}", StringEscape, nil},
110 },
111 "string-doc": {
112 {`(// *)(#+ [^\n]+)(\n)`, ByGroups(StringDoc, GenericHeading, Text), nil},
113 {`// *([=_*~-])\1{2,}\n`, StringDelimiter, nil},
114 {`//[^\n]*\n`, StringDoc, nil},
115 Default(Pop(1)),
116 },
117 "string-interpolation": {
118 {`(\.)?(@)?(?:(` + namePattern + `)(\()([^)]*)(\))|(` + namePattern + `))`, ByGroups(Punctuation, Operator, NameFunction, Punctuation, UsingSelf(`root`), Punctuation, NameVariable), nil},
119 Default(Pop(1)),
120 },
121 "string-curly-interpolation": {
122 {`}`, Punctuation, Pop(1)},
123 Include(`strings`),
124 {`(:)( *?)([ 0'#+-])?(?:(\.)?([0-9]+))?([fFgeEGxXobsd])?`, ByGroups(Punctuation, Text, Operator, Punctuation, Number, StringAffix), nil},
125 {`[^}"':]+`, UsingSelf(`root`), nil},
126 },
127 "attribute": {
128 {`\]`, Punctuation, Pop(1)},
129 {`'`, Punctuation, Push(`string-single`)},
130 {`"`, Punctuation, Push(`string-double`)},
131 {`[;:]`, Punctuation, nil},
132 {`(?<=\[)if\b`, Keyword, nil},
133 {`\s+`, Text, nil},
134 {`(?<=: *)\w+`, String, nil},
135 {namePattern, NameAttribute, nil},
136 },
137 }
138}
139
140// V shell lexer.
141var VSH = Register(MustNewLexer(
142 &Config{
143 Name: "V shell",
144 Aliases: []string{"vsh", "vshell"},
145 Filenames: []string{"*.vsh"},
146 MimeTypes: []string{"text/x-vsh"},
147 EnsureNL: true,
148 },
149 vshRules,
150).SetAnalyser(func(text string) float32 {
151 firstLine := strings.Split(text, "\n")[0]
152 if strings.Contains(firstLine, "#!/usr/bin/env") && strings.Contains(firstLine, "v run") {
153 return 1.0
154 }
155 if strings.Contains(firstLine, "#!/") && strings.Contains(firstLine, "/v run") {
156 return 1.0
157 }
158 return 0.0
159}))
160
161func vshRules() Rules {
162 vshRules := vRules()
163 vshRoot := []Rule{
164 {`^#![^\n]*\n`, CommentHashbang, nil},
165 {Words(`\b`, `\b`, `args`, `max_path_len`, `wd_at_startup`, `sys_write`, `sys_open`, `sys_close`, `sys_mkdir`, `sys_creat`, `path_separator`, `path_delimiter`, `s_ifmt`, `s_ifdir`, `s_iflnk`, `s_isuid`, `s_isgid`, `s_isvtx`, `s_irusr`, `s_iwusr`, `s_ixusr`, `s_irgrp`, `s_iwgrp`, `s_ixgrp`, `s_iroth`, `s_iwoth`, `s_ixoth`), NameConstant, nil},
166 {Words(`\b`, `\b`, `ProcessState`, `SeekMode`, `Signal`, `Command`, `ExecutableNotFoundError`, `File`, `FileNotOpenedError`, `Process`, `Result`, `SizeOfTypeIs0Error`, `Uname`), NameBuiltin, nil},
167 {Words(`\b`, `(?=\()`, `abs_path`, `args_after`, `args_before`, `base`, `cache_dir`, `chdir`, `chmod`, `chown`, `config_dir`, `cp`, `cp_all`, `create`, `debugger_present`, `dir`, `environ`, `executable`, `execute`, `execute_or_exit`, `execute_or_panic`, `execve`, `execvp`, `existing_path`, `exists`, `exists_in_system_path`, `expand_tilde_to_home`, `fd_close`, `fd_read`, `fd_slurp`, `fd_write`, `file_ext`, `file_last_mod_unix`, `file_name`, `file_size`, `fileno`, `find_abs_path_of_executable`, `flush`, `fork`, `get_error_msg`, `get_line`, `get_lines`, `get_lines_joined`, `get_raw_line`, `get_raw_lines_joined`, `get_raw_stdin`, `getegid`, `getenv`, `getenv_opt`, `geteuid`, `getgid`, `getpid`, `getppid`, `getuid`, `getwd`, `glob`, `home_dir`, `hostname`, `inode`, `input`, `input_opt`, `is_abs_path`, `is_atty`, `is_dir`, `is_dir_empty`, `is_executable`, `is_file`, `is_link`, `is_readable`, `is_writable`, `is_writable_folder`, `join_path`, `join_path_single`, `last_error`, `link`, `log`, `loginname`, `ls`, `mkdir`, `mkdir_all`, `mv`, `mv_by_cp`, `new_process`, `norm_path`, `open`, `open_append`, `open_file`, `open_uri`, `posix_get_error_msg`, `posix_set_permission_bit`, `quoted_path`, `read_bytes`, `read_file`, `read_file_array`, `read_lines`, `real_path`, `resource_abs_path`, `rm`, `rmdir`, `rmdir_all`, `setenv`, `sigint_to_signal_name`, `signal_opt`, `stderr`, `stdin`, `stdout`, `symlink`, `system`, `temp_dir`, `truncate`, `uname`, `unsetenv`, `user_os`, `utime`, `vfopen`, `vmodules_dir`, `vmodules_paths`, `wait`, `walk`, `walk_ext`, `walk_with_context`, `write_file`, `write_file_array`, `bitmask`, `close`, `read_line`, `start`, `msg`, `read`, `read_bytes_at`, `read_bytes_into`, `read_bytes_into_newline`, `read_from`, `read_into_ptr`, `read_raw`, `read_raw_at`, `read_struct`, `read_struct_at`, `seek`, `tell`, `write`, `write_raw`, `write_raw_at`, `write_string`, `write_struct`, `write_struct_at`, `write_to`, `writeln`, `is_alive`, `run`, `set_args`, `set_environment`, `set_redirect_stdio`, `signal_continue`, `signal_kill`, `signal_pgkill`, `signal_stop`, `stderr_read`, `stderr_slurp`, `stdin_write`, `stdout_read`, `stdout_slurp`), NameBuiltin, nil},
168 }
169
170 vshRules[`root`] = append(vshRoot, vshRules[`root`]...)
171
172 return vshRules
173}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go b/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go
new file mode 100644
index 0000000..b0059ea
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go
@@ -0,0 +1,39 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Viml lexer.
8var Viml = Register(MustNewLexer(
9 &Config{
10 Name: "VimL",
11 Aliases: []string{"vim"},
12 Filenames: []string{"*.vim", ".vimrc", ".exrc", ".gvimrc", "_vimrc", "_exrc", "_gvimrc", "vimrc", "gvimrc"},
13 MimeTypes: []string{"text/x-vim"},
14 },
15 vimlRules,
16))
17
18func vimlRules() Rules {
19 return Rules{
20 "root": {
21 {`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t]*)(<<)([ \t]*)(.*)((?:\n|.)*)(\6)`, ByGroups(UsingSelf("root"), Keyword, Text, Operator, Text, Text, Using("Python"), Text), nil},
22 {`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t])(.*)`, ByGroups(UsingSelf("root"), Keyword, Text, Using("Python")), nil},
23 {`^\s*".*`, Comment, nil},
24 {`[ \t]+`, Text, nil},
25 {`/(\\\\|\\/|[^\n/])*/`, LiteralStringRegex, nil},
26 {`"(\\\\|\\"|[^\n"])*"`, LiteralStringDouble, nil},
27 {`'(''|[^\n'])*'`, LiteralStringSingle, nil},
28 {`(?<=\s)"[^\-:.%#=*].*`, Comment, nil},
29 {`-?\d+`, LiteralNumber, nil},
30 {`#[0-9a-f]{6}`, LiteralNumberHex, nil},
31 {`^:`, Punctuation, nil},
32 {`[()<>+=!|,~-]`, Punctuation, nil},
33 {`\b(let|if|else|endif|elseif|fun|function|endfunction)\b`, Keyword, nil},
34 {`\b(NONE|bold|italic|underline|dark|light)\b`, NameBuiltin, nil},
35 {`\b\w+\b`, NameOther, nil},
36 {`.`, Text, nil},
37 },
38 }
39}
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/zed.go b/vendor/github.com/alecthomas/chroma/v2/lexers/zed.go
new file mode 100644
index 0000000..aadc80f
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/zed.go
@@ -0,0 +1,24 @@
1package lexers
2
3import (
4 "strings"
5)
6
7// Zed lexer.
8func init() { // nolint: gochecknoinits
9 Get("Zed").SetAnalyser(func(text string) float32 {
10 if strings.Contains(text, "definition ") && strings.Contains(text, "relation ") && strings.Contains(text, "permission ") {
11 return 0.9
12 }
13 if strings.Contains(text, "definition ") {
14 return 0.5
15 }
16 if strings.Contains(text, "relation ") {
17 return 0.5
18 }
19 if strings.Contains(text, "permission ") {
20 return 0.25
21 }
22 return 0.0
23 })
24}