pygments.rb 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/.rubocop.yml +7 -0
- data/CHANGELOG.adoc +4 -0
- data/README.adoc +1 -1
- data/bench.rb +1 -1
- data/lib/pygments/popen.rb +3 -7
- data/lib/pygments/version.rb +1 -1
- data/pygments.rb.gemspec +2 -2
- data/test/test_pygments.rb +0 -19
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
- data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
- data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +20 -22
- data/vendor/pygments-main/pygments/__main__.py +1 -1
- data/vendor/pygments-main/pygments/cmdline.py +74 -8
- data/vendor/pygments-main/pygments/console.py +1 -1
- data/vendor/pygments-main/pygments/filter.py +1 -1
- data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
- data/vendor/pygments-main/pygments/formatter.py +41 -11
- data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
- data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
- data/vendor/pygments-main/pygments/formatters/html.py +54 -32
- data/vendor/pygments-main/pygments/formatters/img.py +9 -5
- data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
- data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
- data/vendor/pygments-main/pygments/formatters/other.py +1 -1
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
- data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
- data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
- data/vendor/pygments-main/pygments/lexer.py +101 -32
- data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
- data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
- data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
- data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
- data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
- data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
- data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
- data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
- data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
- data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
- data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
- data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
- data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
- data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
- data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
- data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
- data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
- data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
- data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
- data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
- data/vendor/pygments-main/pygments/lexers/business.py +18 -18
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
- data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
- data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
- data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
- data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
- data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
- data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
- data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
- data/vendor/pygments-main/pygments/lexers/console.py +5 -4
- data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
- data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
- data/vendor/pygments-main/pygments/lexers/css.py +67 -159
- data/vendor/pygments-main/pygments/lexers/d.py +15 -12
- data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
- data/vendor/pygments-main/pygments/lexers/data.py +119 -49
- data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
- data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
- data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
- data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
- data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
- data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
- data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
- data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
- data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
- data/vendor/pygments-main/pygments/lexers/email.py +21 -39
- data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
- data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
- data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
- data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
- data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
- data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
- data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
- data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
- data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
- data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
- data/vendor/pygments-main/pygments/lexers/func.py +108 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
- data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
- data/vendor/pygments-main/pygments/lexers/go.py +12 -14
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
- data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
- data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
- data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
- data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
- data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
- data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
- data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
- data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
- data/vendor/pygments-main/pygments/lexers/html.py +11 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
- data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
- data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
- data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
- data/vendor/pygments-main/pygments/lexers/j.py +20 -13
- data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
- data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
- data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
- data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
- data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
- data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
- data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
- data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
- data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
- data/vendor/pygments-main/pygments/lexers/make.py +21 -16
- data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
- data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
- data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
- data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
- data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
- data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
- data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
- data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
- data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
- data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
- data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
- data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
- data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
- data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
- data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
- data/vendor/pygments-main/pygments/lexers/php.py +35 -20
- data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
- data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
- data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
- data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
- data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
- data/vendor/pygments-main/pygments/lexers/python.py +145 -119
- data/vendor/pygments-main/pygments/lexers/q.py +188 -0
- data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
- data/vendor/pygments-main/pygments/lexers/r.py +4 -4
- data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
- data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
- data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
- data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
- data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
- data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
- data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
- data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
- data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
- data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
- data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
- data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
- data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
- data/vendor/pygments-main/pygments/lexers/special.py +2 -5
- data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
- data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
- data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
- data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
- data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
- data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
- data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
- data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
- data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
- data/vendor/pygments-main/pygments/lexers/text.py +3 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
- data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
- data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
- data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
- data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
- data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
- data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
- data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
- data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
- data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
- data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
- data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
- data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
- data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -1
- data/vendor/pygments-main/pygments/plugin.py +28 -9
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +2 -2
- data/vendor/pygments-main/pygments/sphinxext.py +63 -1
- data/vendor/pygments-main/pygments/style.py +7 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
- data/vendor/pygments-main/pygments/styles/abap.py +2 -2
- data/vendor/pygments-main/pygments/styles/algol.py +1 -2
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -3
- data/vendor/pygments-main/pygments/styles/borland.py +1 -3
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
- data/vendor/pygments-main/pygments/styles/default.py +13 -14
- data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
- data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +75 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
- data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
- data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/material.py +1 -2
- data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
- data/vendor/pygments-main/pygments/styles/native.py +11 -11
- data/vendor/pygments-main/pygments/styles/nord.py +150 -0
- data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
- data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
- data/vendor/pygments-main/pygments/styles/sas.py +2 -4
- data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
- data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/tango.py +2 -3
- data/vendor/pygments-main/pygments/styles/trac.py +1 -3
- data/vendor/pygments-main/pygments/styles/vim.py +1 -2
- data/vendor/pygments-main/pygments/styles/vs.py +1 -2
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -3
- data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
- data/vendor/pygments-main/pygments/token.py +2 -1
- data/vendor/pygments-main/pygments/unistring.py +4 -6
- data/vendor/pygments-main/pygments/util.py +27 -5
- metadata +59 -14
- data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
- /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,407 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.wgsl
|
3
|
+
~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexer for the WebGPU Shading Language.
|
6
|
+
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
|
+
:license: BSD, see LICENSE for details.
|
9
|
+
"""
|
10
|
+
|
11
|
+
from pygments.lexer import RegexLexer, include, bygroups, words, default
|
12
|
+
from pygments.token import Comment, Operator, Keyword, Name, \
|
13
|
+
Number, Punctuation, Whitespace
|
14
|
+
from pygments import unistring as uni
|
15
|
+
|
16
|
+
__all__ = ['WgslLexer']
|
17
|
+
|
18
|
+
LF = '\\u000a'
|
19
|
+
VT = '\\u000b'
|
20
|
+
FF = '\\u000c'
|
21
|
+
CR = '\\u000d'
|
22
|
+
NextLine = '\\u0085'
|
23
|
+
LineSep = '\\u2028'
|
24
|
+
ParaSep = '\\u2029'
|
25
|
+
LineEndCodePoints = [LF,VT,FF,CR,NextLine,LineSep,ParaSep]
|
26
|
+
NotLineEndRE = '[^' + "".join(LineEndCodePoints) + ']'
|
27
|
+
LineEndRE = '[' + "".join(LineEndCodePoints) + ']'
|
28
|
+
|
29
|
+
# https://www.w3.org/TR/WGSL/#syntax-ident_pattern_token
|
30
|
+
ident_pattern_token = '([{}][{}]+)|[{}]'.format(uni.xid_start,uni.xid_continue,uni.xid_start)
|
31
|
+
|
32
|
+
|
33
|
+
class WgslLexer(RegexLexer):
|
34
|
+
"""
|
35
|
+
Lexer for the WebGPU Shading Language.
|
36
|
+
|
37
|
+
.. versionadded:: 2.15
|
38
|
+
"""
|
39
|
+
name = 'WebGPU Shading Language'
|
40
|
+
url = 'https://www.w3.org/TR/WGSL/'
|
41
|
+
aliases = ['wgsl']
|
42
|
+
filenames = ['*.wgsl']
|
43
|
+
mimetypes = ['text/wgsl']
|
44
|
+
|
45
|
+
# https://www.w3.org/TR/WGSL/#var-and-value
|
46
|
+
keyword_decl = (words('var let const override'.split(),suffix=r'\b'), Keyword.Declaration)
|
47
|
+
# https://www.w3.org/TR/WGSL/#keyword-summary
|
48
|
+
keywords = (words("""
|
49
|
+
alias
|
50
|
+
break
|
51
|
+
case
|
52
|
+
const_assert
|
53
|
+
continue
|
54
|
+
continuing
|
55
|
+
default
|
56
|
+
diagnostic
|
57
|
+
discard
|
58
|
+
else
|
59
|
+
enable
|
60
|
+
false
|
61
|
+
fn
|
62
|
+
for
|
63
|
+
if
|
64
|
+
loop
|
65
|
+
requires
|
66
|
+
return
|
67
|
+
struct
|
68
|
+
switch
|
69
|
+
true
|
70
|
+
while
|
71
|
+
""".split(), suffix=r'\b'), Keyword)
|
72
|
+
|
73
|
+
# https://www.w3.org/TR/WGSL/#reserved-words
|
74
|
+
keyword_reserved = (words("""
|
75
|
+
NULL
|
76
|
+
Self
|
77
|
+
abstract
|
78
|
+
active
|
79
|
+
alignas
|
80
|
+
alignof
|
81
|
+
as
|
82
|
+
asm
|
83
|
+
asm_fragment
|
84
|
+
async
|
85
|
+
attribute
|
86
|
+
auto
|
87
|
+
await
|
88
|
+
become
|
89
|
+
binding_array
|
90
|
+
cast
|
91
|
+
catch
|
92
|
+
class
|
93
|
+
co_await
|
94
|
+
co_return
|
95
|
+
co_yield
|
96
|
+
coherent
|
97
|
+
column_major
|
98
|
+
common
|
99
|
+
compile
|
100
|
+
compile_fragment
|
101
|
+
concept
|
102
|
+
const_cast
|
103
|
+
consteval
|
104
|
+
constexpr
|
105
|
+
constinit
|
106
|
+
crate
|
107
|
+
debugger
|
108
|
+
decltype
|
109
|
+
delete
|
110
|
+
demote
|
111
|
+
demote_to_helper
|
112
|
+
do
|
113
|
+
dynamic_cast
|
114
|
+
enum
|
115
|
+
explicit
|
116
|
+
export
|
117
|
+
extends
|
118
|
+
extern
|
119
|
+
external
|
120
|
+
fallthrough
|
121
|
+
filter
|
122
|
+
final
|
123
|
+
finally
|
124
|
+
friend
|
125
|
+
from
|
126
|
+
fxgroup
|
127
|
+
get
|
128
|
+
goto
|
129
|
+
groupshared
|
130
|
+
highp
|
131
|
+
impl
|
132
|
+
implements
|
133
|
+
import
|
134
|
+
inline
|
135
|
+
instanceof
|
136
|
+
interface
|
137
|
+
layout
|
138
|
+
lowp
|
139
|
+
macro
|
140
|
+
macro_rules
|
141
|
+
match
|
142
|
+
mediump
|
143
|
+
meta
|
144
|
+
mod
|
145
|
+
module
|
146
|
+
move
|
147
|
+
mut
|
148
|
+
mutable
|
149
|
+
namespace
|
150
|
+
new
|
151
|
+
nil
|
152
|
+
noexcept
|
153
|
+
noinline
|
154
|
+
nointerpolation
|
155
|
+
noperspective
|
156
|
+
null
|
157
|
+
nullptr
|
158
|
+
of
|
159
|
+
operator
|
160
|
+
package
|
161
|
+
packoffset
|
162
|
+
partition
|
163
|
+
pass
|
164
|
+
patch
|
165
|
+
pixelfragment
|
166
|
+
precise
|
167
|
+
precision
|
168
|
+
premerge
|
169
|
+
priv
|
170
|
+
protected
|
171
|
+
pub
|
172
|
+
public
|
173
|
+
readonly
|
174
|
+
ref
|
175
|
+
regardless
|
176
|
+
register
|
177
|
+
reinterpret_cast
|
178
|
+
require
|
179
|
+
resource
|
180
|
+
restrict
|
181
|
+
self
|
182
|
+
set
|
183
|
+
shared
|
184
|
+
sizeof
|
185
|
+
smooth
|
186
|
+
snorm
|
187
|
+
static
|
188
|
+
static_assert
|
189
|
+
static_cast
|
190
|
+
std
|
191
|
+
subroutine
|
192
|
+
super
|
193
|
+
target
|
194
|
+
template
|
195
|
+
this
|
196
|
+
thread_local
|
197
|
+
throw
|
198
|
+
trait
|
199
|
+
try
|
200
|
+
type
|
201
|
+
typedef
|
202
|
+
typeid
|
203
|
+
typename
|
204
|
+
typeof
|
205
|
+
union
|
206
|
+
unless
|
207
|
+
unorm
|
208
|
+
unsafe
|
209
|
+
unsized
|
210
|
+
use
|
211
|
+
using
|
212
|
+
varying
|
213
|
+
virtual
|
214
|
+
volatile
|
215
|
+
wgsl
|
216
|
+
where
|
217
|
+
with
|
218
|
+
writeonly
|
219
|
+
yield
|
220
|
+
""".split(), suffix=r'\b'), Keyword.Reserved)
|
221
|
+
|
222
|
+
# https://www.w3.org/TR/WGSL/#predeclared-enumerants
|
223
|
+
predeclared_enums = (words("""
|
224
|
+
read write read_write
|
225
|
+
function private workgroup uniform storage
|
226
|
+
perspective linear flat
|
227
|
+
center centroid sample
|
228
|
+
vertex_index instance_index position front_facing frag_depth
|
229
|
+
local_invocation_id local_invocation_index
|
230
|
+
global_invocation_id workgroup_id num_workgroups
|
231
|
+
sample_index sample_mask
|
232
|
+
rgba8unorm
|
233
|
+
rgba8snorm
|
234
|
+
rgba8uint
|
235
|
+
rgba8sint
|
236
|
+
rgba16uint
|
237
|
+
rgba16sint
|
238
|
+
rgba16float
|
239
|
+
r32uint
|
240
|
+
r32sint
|
241
|
+
r32float
|
242
|
+
rg32uint
|
243
|
+
rg32sint
|
244
|
+
rg32float
|
245
|
+
rgba32uint
|
246
|
+
rgba32sint
|
247
|
+
rgba32float
|
248
|
+
bgra8unorm
|
249
|
+
""".split(), suffix=r'\b'), Name.Builtin)
|
250
|
+
|
251
|
+
# https://www.w3.org/TR/WGSL/#predeclared-types
|
252
|
+
predeclared_types = (words("""
|
253
|
+
bool
|
254
|
+
f16
|
255
|
+
f32
|
256
|
+
i32
|
257
|
+
sampler sampler_comparison
|
258
|
+
texture_depth_2d
|
259
|
+
texture_depth_2d_array
|
260
|
+
texture_depth_cube
|
261
|
+
texture_depth_cube_array
|
262
|
+
texture_depth_multisampled_2d
|
263
|
+
texture_external
|
264
|
+
texture_external
|
265
|
+
u32
|
266
|
+
""".split(), suffix=r'\b'), Name.Builtin)
|
267
|
+
|
268
|
+
# https://www.w3.org/TR/WGSL/#predeclared-types
|
269
|
+
predeclared_type_generators = (words("""
|
270
|
+
array
|
271
|
+
atomic
|
272
|
+
mat2x2
|
273
|
+
mat2x3
|
274
|
+
mat2x4
|
275
|
+
mat3x2
|
276
|
+
mat3x3
|
277
|
+
mat3x4
|
278
|
+
mat4x2
|
279
|
+
mat4x3
|
280
|
+
mat4x4
|
281
|
+
ptr
|
282
|
+
texture_1d
|
283
|
+
texture_2d
|
284
|
+
texture_2d_array
|
285
|
+
texture_3d
|
286
|
+
texture_cube
|
287
|
+
texture_cube_array
|
288
|
+
texture_multisampled_2d
|
289
|
+
texture_storage_1d
|
290
|
+
texture_storage_2d
|
291
|
+
texture_storage_2d_array
|
292
|
+
texture_storage_3d
|
293
|
+
vec2
|
294
|
+
vec3
|
295
|
+
vec4
|
296
|
+
""".split(), suffix=r'\b'), Name.Builtin)
|
297
|
+
|
298
|
+
# Predeclared type aliases for vectors
|
299
|
+
# https://www.w3.org/TR/WGSL/#vector-types
|
300
|
+
predeclared_type_alias_vectors = (words("""
|
301
|
+
vec2i vec3i vec4i
|
302
|
+
vec2u vec3u vec4u
|
303
|
+
vec2f vec3f vec4f
|
304
|
+
vec2h vec3h vec4h
|
305
|
+
""".split(), suffix=r'\b'), Name.Builtin)
|
306
|
+
|
307
|
+
# Predeclared type aliases for matrices
|
308
|
+
# https://www.w3.org/TR/WGSL/#matrix-types
|
309
|
+
predeclared_type_alias_matrices = (words("""
|
310
|
+
mat2x2f mat2x3f mat2x4f
|
311
|
+
mat3x2f mat3x3f mat3x4f
|
312
|
+
mat4x2f mat4x3f mat4x4f
|
313
|
+
mat2x2h mat2x3h mat2x4h
|
314
|
+
mat3x2h mat3x3h mat3x4h
|
315
|
+
mat4x2h mat4x3h mat4x4h
|
316
|
+
""".split(), suffix=r'\b'), Name.Builtin)
|
317
|
+
|
318
|
+
tokens = {
|
319
|
+
'blankspace': [
|
320
|
+
# https://www.w3.org/TR/WGSL/#blankspace
|
321
|
+
(r'[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]+', Whitespace),
|
322
|
+
],
|
323
|
+
'comments': [
|
324
|
+
# Line ending comments
|
325
|
+
# Match up CR/LF pair first.
|
326
|
+
(r'//{}*{}{}'.format(NotLineEndRE,CR,LF), Comment.Single),
|
327
|
+
(r'//{}*{}'.format(NotLineEndRE,LineEndRE), Comment.Single),
|
328
|
+
(r'/\*', Comment.Multiline, 'block_comment'),
|
329
|
+
],
|
330
|
+
'attribute': [
|
331
|
+
include('blankspace'),
|
332
|
+
include('comments'),
|
333
|
+
(ident_pattern_token, Name.Decorator,'#pop'),
|
334
|
+
default('#pop'),
|
335
|
+
],
|
336
|
+
'root': [
|
337
|
+
include('blankspace'),
|
338
|
+
include('comments'),
|
339
|
+
|
340
|
+
# Attributes.
|
341
|
+
# https://www.w3.org/TR/WGSL/#attributes
|
342
|
+
# Mark the '@' and the attribute name as a decorator.
|
343
|
+
(r'@', Name.Decorator, 'attribute'),
|
344
|
+
|
345
|
+
# Keywords
|
346
|
+
(r'(true|false)\b', Keyword.Constant),
|
347
|
+
keyword_decl,
|
348
|
+
keywords,
|
349
|
+
keyword_reserved,
|
350
|
+
|
351
|
+
# Predeclared
|
352
|
+
predeclared_enums,
|
353
|
+
predeclared_types,
|
354
|
+
predeclared_type_generators,
|
355
|
+
predeclared_type_alias_vectors,
|
356
|
+
predeclared_type_alias_matrices,
|
357
|
+
|
358
|
+
# Decimal float literals
|
359
|
+
# https://www.w3.org/TR/WGSL/#syntax-decimal_float_literal
|
360
|
+
# 0, with type-specifying suffix.
|
361
|
+
(r'0[fh]', Number.Float),
|
362
|
+
# Other decimal integer, with type-specifying suffix.
|
363
|
+
(r'[1-9][0-9]*[fh]', Number.Float),
|
364
|
+
# Has decimal point, at least one digit after decimal.
|
365
|
+
(r'[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?', Number.Float),
|
366
|
+
# Has decimal point, at least one digit before decimal.
|
367
|
+
(r'[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?', Number.Float),
|
368
|
+
# Has at least one digit, and has an exponent.
|
369
|
+
(r'[0-9]+[eE][+-]?[0-9]+[fh]?', Number.Float),
|
370
|
+
|
371
|
+
# Hex float literals
|
372
|
+
# https://www.w3.org/TR/WGSL/#syntax-hex_float_literal
|
373
|
+
(r'0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?', Number.Float),
|
374
|
+
(r'0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?', Number.Float),
|
375
|
+
(r'0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?', Number.Float),
|
376
|
+
|
377
|
+
# Hexadecimal integer literals
|
378
|
+
# https://www.w3.org/TR/WGSL/#syntax-hex_int_literal
|
379
|
+
(r'0[xX][0-9a-fA-F]+[iu]?', Number.Hex),
|
380
|
+
# Decimal integer literals
|
381
|
+
# https://www.w3.org/TR/WGSL/#syntax-decimal_int_literal
|
382
|
+
# We need two rules here because 01 is not valid.
|
383
|
+
(r'[1-9][0-9]*[iu]?', Number.Integer),
|
384
|
+
(r'0[iu]?', Number.Integer), # Must match last.
|
385
|
+
|
386
|
+
# Operators and Punctuation
|
387
|
+
(r'[{}()\[\],\.;:]', Punctuation),
|
388
|
+
(r'->', Punctuation), # Return-type arrow
|
389
|
+
(r'[+\-*/%&|<>^!~=]', Operator),
|
390
|
+
|
391
|
+
# TODO: Treat context-depedendent names specially
|
392
|
+
# https://www.w3.org/TR/WGSL/#context-dependent-name
|
393
|
+
|
394
|
+
# Identifiers
|
395
|
+
(ident_pattern_token, Name),
|
396
|
+
|
397
|
+
# TODO: templates start and end tokens.
|
398
|
+
# https://www.w3.org/TR/WGSL/#template-lists-sec
|
399
|
+
],
|
400
|
+
'block_comment': [
|
401
|
+
# https://www.w3.org/TR/WGSL/#block-comment
|
402
|
+
(r'[^*/]+', Comment.Multiline),
|
403
|
+
(r'/\*', Comment.Multiline, '#push'),
|
404
|
+
(r'\*/', Comment.Multiline, '#pop'),
|
405
|
+
(r'[*/]', Comment.Multiline),
|
406
|
+
],
|
407
|
+
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for the Whiley language.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -22,6 +22,7 @@ class WhileyLexer(RegexLexer):
|
|
22
22
|
.. versionadded:: 2.2
|
23
23
|
"""
|
24
24
|
name = 'Whiley'
|
25
|
+
url = 'http://whiley.org/'
|
25
26
|
filenames = ['*.whiley']
|
26
27
|
aliases = ['whiley']
|
27
28
|
mimetypes = ['text/x-whiley']
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.wowtoc
|
3
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexer for World of Warcraft TOC files
|
6
|
+
|
7
|
+
TOC files describe game addons.
|
8
|
+
|
9
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
10
|
+
:license: BSD, see LICENSE for details.
|
11
|
+
"""
|
12
|
+
|
13
|
+
import re
|
14
|
+
|
15
|
+
from pygments.lexer import RegexLexer, bygroups
|
16
|
+
from pygments.token import Comment, Name, Text, Punctuation, String, Keyword
|
17
|
+
|
18
|
+
__all__ = ["WoWTocLexer"]
|
19
|
+
|
20
|
+
def _create_tag_line_pattern(inner_pattern, ignore_case=False):
|
21
|
+
return ((r"(?i)" if ignore_case else r"")
|
22
|
+
+ r"^(##)( *)" # groups 1, 2
|
23
|
+
+ inner_pattern # group 3
|
24
|
+
+ r"( *)(:)( *)(.*?)( *)$") # groups 4, 5, 6, 7, 8
|
25
|
+
|
26
|
+
|
27
|
+
def _create_tag_line_token(inner_pattern, inner_token, ignore_case=False):
|
28
|
+
# this function template-izes the tag line for a specific type of tag, which will
|
29
|
+
# have a different pattern and different token. otherwise, everything about a tag
|
30
|
+
# line is the same
|
31
|
+
return (
|
32
|
+
_create_tag_line_pattern(inner_pattern, ignore_case=ignore_case),
|
33
|
+
bygroups(
|
34
|
+
Keyword.Declaration,
|
35
|
+
Text.Whitespace,
|
36
|
+
inner_token,
|
37
|
+
Text.Whitespace,
|
38
|
+
Punctuation,
|
39
|
+
Text.Whitespace,
|
40
|
+
String,
|
41
|
+
Text.Whitespace,
|
42
|
+
),
|
43
|
+
)
|
44
|
+
|
45
|
+
|
46
|
+
class WoWTocLexer(RegexLexer):
|
47
|
+
"""
|
48
|
+
Lexer for World of Warcraft TOC files.
|
49
|
+
|
50
|
+
.. versionadded:: 2.14
|
51
|
+
"""
|
52
|
+
|
53
|
+
name = "World of Warcraft TOC"
|
54
|
+
aliases = ["wowtoc"]
|
55
|
+
filenames = ["*.toc"]
|
56
|
+
|
57
|
+
tokens = {
|
58
|
+
"root": [
|
59
|
+
# official localized tags, Notes and Title
|
60
|
+
# (normal part is insensitive, locale part is sensitive)
|
61
|
+
_create_tag_line_token(
|
62
|
+
r"((?:[nN][oO][tT][eE][sS]|[tT][iI][tT][lL][eE])-(?:ptBR|zhCN|"
|
63
|
+
r"enCN|frFR|deDE|itIT|esMX|ptPT|koKR|ruRU|esES|zhTW|enTW|enGB|enUS))",
|
64
|
+
Name.Builtin,
|
65
|
+
),
|
66
|
+
# other official tags
|
67
|
+
_create_tag_line_token(
|
68
|
+
r"(Interface|Title|Notes|RequiredDeps|Dep[^: ]*|OptionalDeps|"
|
69
|
+
r"LoadOnDemand|LoadWith|LoadManagers|SavedVariablesPerCharacter|"
|
70
|
+
r"SavedVariables|DefaultState|Secure|Author|Version)",
|
71
|
+
Name.Builtin,
|
72
|
+
ignore_case=True,
|
73
|
+
),
|
74
|
+
# user-defined tags
|
75
|
+
_create_tag_line_token(
|
76
|
+
r"(X-[^: ]*)",
|
77
|
+
Name.Variable,
|
78
|
+
ignore_case=True,
|
79
|
+
),
|
80
|
+
# non-conforming tags, but still valid
|
81
|
+
_create_tag_line_token(
|
82
|
+
r"([^: ]*)",
|
83
|
+
Name.Other,
|
84
|
+
),
|
85
|
+
|
86
|
+
# Comments
|
87
|
+
(r"^#.*$", Comment),
|
88
|
+
|
89
|
+
# Addon Files
|
90
|
+
(r"^.+$", Name),
|
91
|
+
]
|
92
|
+
}
|
93
|
+
|
94
|
+
def analyse_text(text):
|
95
|
+
# at time of writing, this file suffix conflict's with one of Tex's in
|
96
|
+
# markup.py. Tex's anaylse_text() appears to be definitive (binary) and does not
|
97
|
+
# share any likeness to WoW TOCs, which means we wont have to compete with it by
|
98
|
+
# abitrary increments in score.
|
99
|
+
|
100
|
+
result = 0
|
101
|
+
|
102
|
+
# while not required, an almost certain marker of WoW TOC's is the interface tag
|
103
|
+
# if this tag is omitted, players will need to opt-in to loading the addon with
|
104
|
+
# an options change ("Load out of date addons"). the value is also standardized:
|
105
|
+
# `<major><minor><patch>`, with minor and patch being two-digit zero-padded.
|
106
|
+
interface_pattern = _create_tag_line_pattern(r"(Interface)", ignore_case=True)
|
107
|
+
match = re.search(interface_pattern, text)
|
108
|
+
if match and re.match(r"(\d+)(\d{2})(\d{2})", match.group(7)):
|
109
|
+
result += 0.8
|
110
|
+
|
111
|
+
casefolded = text.casefold()
|
112
|
+
# Lua file listing is good marker too, but probably conflicts with many other
|
113
|
+
# lexers
|
114
|
+
if ".lua" in casefolded:
|
115
|
+
result += 0.1
|
116
|
+
# ditto for XML files, but they're less used in WoW TOCs
|
117
|
+
if ".xml" in casefolded:
|
118
|
+
result += 0.05
|
119
|
+
|
120
|
+
return result
|
@@ -0,0 +1,99 @@
|
|
1
|
+
"""
|
2
|
+
pygments.lexers.wren
|
3
|
+
~~~~~~~~~~~~~~~~~~~~
|
4
|
+
|
5
|
+
Lexer for Wren.
|
6
|
+
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
|
+
:license: BSD, see LICENSE for details.
|
9
|
+
"""
|
10
|
+
|
11
|
+
import re
|
12
|
+
|
13
|
+
from pygments.lexer import include, RegexLexer, words
|
14
|
+
from pygments.token import Whitespace, Punctuation, Keyword, Name, Comment, \
|
15
|
+
Operator, Number, String, Error
|
16
|
+
|
17
|
+
__all__ = ['WrenLexer']
|
18
|
+
|
19
|
+
class WrenLexer(RegexLexer):
|
20
|
+
"""
|
21
|
+
For Wren source code, version 0.4.0.
|
22
|
+
|
23
|
+
.. versionadded:: 2.14.0
|
24
|
+
"""
|
25
|
+
name = 'Wren'
|
26
|
+
url = 'https://wren.io'
|
27
|
+
aliases = ['wren']
|
28
|
+
filenames = ['*.wren']
|
29
|
+
|
30
|
+
flags = re.MULTILINE | re.DOTALL
|
31
|
+
|
32
|
+
tokens = {
|
33
|
+
'root': [
|
34
|
+
# Whitespace.
|
35
|
+
(r'\s+', Whitespace),
|
36
|
+
(r'[,\\\[\]{}]', Punctuation),
|
37
|
+
|
38
|
+
# Really 'root', not '#push': in 'interpolation',
|
39
|
+
# parentheses inside the interpolation expression are
|
40
|
+
# Punctuation, not String.Interpol.
|
41
|
+
(r'\(', Punctuation, 'root'),
|
42
|
+
(r'\)', Punctuation, '#pop'),
|
43
|
+
|
44
|
+
# Keywords.
|
45
|
+
(words((
|
46
|
+
'as', 'break', 'class', 'construct', 'continue', 'else',
|
47
|
+
'for', 'foreign', 'if', 'import', 'return', 'static', 'super',
|
48
|
+
'this', 'var', 'while'), prefix = r'(?<!\.)',
|
49
|
+
suffix = r'\b'), Keyword),
|
50
|
+
|
51
|
+
(words((
|
52
|
+
'true', 'false', 'null'), prefix = r'(?<!\.)',
|
53
|
+
suffix = r'\b'), Keyword.Constant),
|
54
|
+
|
55
|
+
(words((
|
56
|
+
'in', 'is'), prefix = r'(?<!\.)',
|
57
|
+
suffix = r'\b'), Operator.Word),
|
58
|
+
|
59
|
+
# Comments.
|
60
|
+
(r'/\*', Comment.Multiline, 'comment'), # Multiline, can nest.
|
61
|
+
(r'//.*?$', Comment.Single), # Single line.
|
62
|
+
(r'#.*?(\(.*?\))?$', Comment.Special), # Attribute or shebang.
|
63
|
+
|
64
|
+
# Names and operators.
|
65
|
+
(r'[!%&*+\-./:<=>?\\^|~]+', Operator),
|
66
|
+
(r'[a-z][a-zA-Z_0-9]*', Name),
|
67
|
+
(r'[A-Z][a-zA-Z_0-9]*', Name.Class),
|
68
|
+
(r'__[a-zA-Z_0-9]*', Name.Variable.Class),
|
69
|
+
(r'_[a-zA-Z_0-9]*', Name.Variable.Instance),
|
70
|
+
|
71
|
+
# Numbers.
|
72
|
+
(r'0x[0-9a-fA-F]+', Number.Hex),
|
73
|
+
(r'\d+(\.\d+)?([eE][-+]?\d+)?', Number.Float),
|
74
|
+
|
75
|
+
# Strings.
|
76
|
+
(r'""".*?"""', String), # Raw string
|
77
|
+
(r'"', String, 'string'), # Other string
|
78
|
+
],
|
79
|
+
'comment': [
|
80
|
+
(r'/\*', Comment.Multiline, '#push'),
|
81
|
+
(r'\*/', Comment.Multiline, '#pop'),
|
82
|
+
(r'([^*/]|\*(?!/)|/(?!\*))+', Comment.Multiline),
|
83
|
+
],
|
84
|
+
'string': [
|
85
|
+
(r'"', String, '#pop'),
|
86
|
+
(r'\\[\\%"0abefnrtv]', String.Escape), # Escape.
|
87
|
+
(r'\\x[a-fA-F0-9]{2}', String.Escape), # Byte escape.
|
88
|
+
(r'\\u[a-fA-F0-9]{4}', String.Escape), # Unicode escape.
|
89
|
+
(r'\\U[a-fA-F0-9]{8}', String.Escape), # Long Unicode escape.
|
90
|
+
|
91
|
+
(r'%\(', String.Interpol, 'interpolation'),
|
92
|
+
(r'[^\\"%]+', String), # All remaining characters.
|
93
|
+
],
|
94
|
+
'interpolation': [
|
95
|
+
# redefine closing paren to be String.Interpol
|
96
|
+
(r'\)', String.Interpol, '#pop'),
|
97
|
+
include('root'),
|
98
|
+
],
|
99
|
+
}
|
@@ -4,26 +4,25 @@
|
|
4
4
|
|
5
5
|
Lexers for the X10 programming language.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
11
|
-
import re
|
12
|
-
|
13
11
|
from pygments.lexer import RegexLexer
|
14
|
-
from pygments.token import Text, Comment,
|
15
|
-
Number, Punctuation, Error
|
12
|
+
from pygments.token import Text, Comment, Keyword, String
|
16
13
|
|
17
14
|
__all__ = ['X10Lexer']
|
18
15
|
|
16
|
+
|
19
17
|
class X10Lexer(RegexLexer):
|
20
18
|
"""
|
21
19
|
For the X10 language.
|
22
20
|
|
23
|
-
.. versionadded::
|
21
|
+
.. versionadded:: 2.2
|
24
22
|
"""
|
25
23
|
|
26
24
|
name = 'X10'
|
25
|
+
url = 'http://x10-lang.org/'
|
27
26
|
aliases = ['x10', 'xten']
|
28
27
|
filenames = ['*.x10']
|
29
28
|
mimetypes = ['text/x-x10']
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for Xorg configs.
|
6
6
|
|
7
|
-
:copyright: Copyright 2006-
|
7
|
+
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
|
8
8
|
:license: BSD, see LICENSE for details.
|
9
9
|
"""
|
10
10
|
|
@@ -15,8 +15,9 @@ __all__ = ['XorgLexer']
|
|
15
15
|
|
16
16
|
|
17
17
|
class XorgLexer(RegexLexer):
|
18
|
-
"""Lexer for xorg.conf
|
18
|
+
"""Lexer for xorg.conf files."""
|
19
19
|
name = 'Xorg'
|
20
|
+
url = 'https://www.x.org/wiki/'
|
20
21
|
aliases = ['xorg.conf']
|
21
22
|
filenames = ['xorg.conf']
|
22
23
|
mimetypes = []
|