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
@@ -4,16 +4,16 @@
|
|
4
4
|
|
5
5
|
Lexers for Haskell and related languages.
|
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
11
|
import re
|
12
12
|
|
13
13
|
from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \
|
14
|
-
default, include, inherit
|
14
|
+
default, include, inherit, line_re
|
15
15
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
16
|
-
Number, Punctuation, Generic
|
16
|
+
Number, Punctuation, Generic, Whitespace
|
17
17
|
from pygments import unistring as uni
|
18
18
|
|
19
19
|
__all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer',
|
@@ -21,9 +21,6 @@ __all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexe
|
|
21
21
|
'LiterateCryptolLexer', 'KokaLexer']
|
22
22
|
|
23
23
|
|
24
|
-
line_re = re.compile('.*?\n')
|
25
|
-
|
26
|
-
|
27
24
|
class HaskellLexer(RegexLexer):
|
28
25
|
"""
|
29
26
|
A Haskell lexer based on the lexemes defined in the Haskell 98 Report.
|
@@ -31,12 +28,11 @@ class HaskellLexer(RegexLexer):
|
|
31
28
|
.. versionadded:: 0.8
|
32
29
|
"""
|
33
30
|
name = 'Haskell'
|
31
|
+
url = 'https://www.haskell.org/'
|
34
32
|
aliases = ['haskell', 'hs']
|
35
33
|
filenames = ['*.hs']
|
36
34
|
mimetypes = ['text/x-haskell']
|
37
35
|
|
38
|
-
flags = re.MULTILINE | re.UNICODE
|
39
|
-
|
40
36
|
reserved = ('case', 'class', 'data', 'default', 'deriving', 'do', 'else',
|
41
37
|
'family', 'if', 'in', 'infix[lr]?', 'instance',
|
42
38
|
'let', 'newtype', 'of', 'then', 'type', 'where', '_')
|
@@ -48,7 +44,7 @@ class HaskellLexer(RegexLexer):
|
|
48
44
|
tokens = {
|
49
45
|
'root': [
|
50
46
|
# Whitespace:
|
51
|
-
(r'\s+',
|
47
|
+
(r'\s+', Whitespace),
|
52
48
|
# (r'--\s*|.*$', Comment.Doc),
|
53
49
|
(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
|
54
50
|
(r'\{-', Comment.Multiline, 'comment'),
|
@@ -91,31 +87,31 @@ class HaskellLexer(RegexLexer):
|
|
91
87
|
],
|
92
88
|
'import': [
|
93
89
|
# Import statements
|
94
|
-
(r'\s+',
|
90
|
+
(r'\s+', Whitespace),
|
95
91
|
(r'"', String, 'string'),
|
96
92
|
# after "funclist" state
|
97
93
|
(r'\)', Punctuation, '#pop'),
|
98
94
|
(r'qualified\b', Keyword),
|
99
95
|
# import X as Y
|
100
96
|
(r'([' + uni.Lu + r'][\w.]*)(\s+)(as)(\s+)([' + uni.Lu + r'][\w.]*)',
|
101
|
-
bygroups(Name.Namespace,
|
97
|
+
bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), '#pop'),
|
102
98
|
# import X hiding (functions)
|
103
99
|
(r'([' + uni.Lu + r'][\w.]*)(\s+)(hiding)(\s+)(\()',
|
104
|
-
bygroups(Name.Namespace,
|
100
|
+
bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), 'funclist'),
|
105
101
|
# import X (functions)
|
106
102
|
(r'([' + uni.Lu + r'][\w.]*)(\s+)(\()',
|
107
|
-
bygroups(Name.Namespace,
|
103
|
+
bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'),
|
108
104
|
# import X
|
109
105
|
(r'[\w.]+', Name.Namespace, '#pop'),
|
110
106
|
],
|
111
107
|
'module': [
|
112
|
-
(r'\s+',
|
108
|
+
(r'\s+', Whitespace),
|
113
109
|
(r'([' + uni.Lu + r'][\w.]*)(\s+)(\()',
|
114
|
-
bygroups(Name.Namespace,
|
110
|
+
bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'),
|
115
111
|
(r'[' + uni.Lu + r'][\w.]*', Name.Namespace, '#pop'),
|
116
112
|
],
|
117
113
|
'funclist': [
|
118
|
-
(r'\s+',
|
114
|
+
(r'\s+', Whitespace),
|
119
115
|
(r'[' + uni.Lu + r']\w*', Keyword.Type),
|
120
116
|
(r'(_[\w\']+|[' + uni.Ll + r'][\w\']*)', Name.Function),
|
121
117
|
(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
|
@@ -153,7 +149,7 @@ class HaskellLexer(RegexLexer):
|
|
153
149
|
(r'o[0-7]+', String.Escape, '#pop'),
|
154
150
|
(r'x[\da-fA-F]+', String.Escape, '#pop'),
|
155
151
|
(r'\d+', String.Escape, '#pop'),
|
156
|
-
(r'\s
|
152
|
+
(r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop'),
|
157
153
|
],
|
158
154
|
}
|
159
155
|
|
@@ -167,14 +163,14 @@ class HspecLexer(HaskellLexer):
|
|
167
163
|
|
168
164
|
name = 'Hspec'
|
169
165
|
aliases = ['hspec']
|
170
|
-
filenames = []
|
166
|
+
filenames = ['*Spec.hs']
|
171
167
|
mimetypes = []
|
172
168
|
|
173
169
|
tokens = {
|
174
170
|
'root': [
|
175
|
-
(r'(it\s*)("[^"]*")', bygroups(Text, String.Doc)),
|
176
|
-
(r'(describe\s*)("[^"]*")', bygroups(Text, String.Doc)),
|
177
|
-
(r'(context\s*)("[^"]*")', bygroups(Text, String.Doc)),
|
171
|
+
(r'(it)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)),
|
172
|
+
(r'(describe)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)),
|
173
|
+
(r'(context)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)),
|
178
174
|
inherit,
|
179
175
|
],
|
180
176
|
}
|
@@ -189,6 +185,7 @@ class IdrisLexer(RegexLexer):
|
|
189
185
|
.. versionadded:: 2.0
|
190
186
|
"""
|
191
187
|
name = 'Idris'
|
188
|
+
url = 'https://www.idris-lang.org/'
|
192
189
|
aliases = ['idris', 'idr']
|
193
190
|
filenames = ['*.idr']
|
194
191
|
mimetypes = ['text/x-idris']
|
@@ -215,16 +212,16 @@ class IdrisLexer(RegexLexer):
|
|
215
212
|
'root': [
|
216
213
|
# Comments
|
217
214
|
(r'^(\s*)(%%(%s))' % '|'.join(directives),
|
218
|
-
bygroups(
|
219
|
-
(r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(
|
220
|
-
(r'(\s*)(\|{3}.*?)$', bygroups(
|
221
|
-
(r'(\s*)(\{-)', bygroups(
|
215
|
+
bygroups(Whitespace, Keyword.Reserved)),
|
216
|
+
(r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Whitespace, Comment.Single)),
|
217
|
+
(r'(\s*)(\|{3}.*?)$', bygroups(Whitespace, Comment.Single)),
|
218
|
+
(r'(\s*)(\{-)', bygroups(Whitespace, Comment.Multiline), 'comment'),
|
222
219
|
# Declaration
|
223
220
|
(r'^(\s*)([^\s(){}]+)(\s*)(:)(\s*)',
|
224
|
-
bygroups(
|
221
|
+
bygroups(Whitespace, Name.Function, Whitespace, Operator.Word, Whitespace)),
|
225
222
|
# Identifiers
|
226
223
|
(r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
|
227
|
-
(r'(import|module)(\s+)', bygroups(Keyword.Reserved,
|
224
|
+
(r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace), 'module'),
|
228
225
|
(r"('')?[A-Z][\w\']*", Keyword.Type),
|
229
226
|
(r'[a-z][\w\']*', Text),
|
230
227
|
# Special Symbols
|
@@ -239,16 +236,16 @@ class IdrisLexer(RegexLexer):
|
|
239
236
|
(r"'", String.Char, 'character'),
|
240
237
|
(r'"', String, 'string'),
|
241
238
|
(r'[^\s(){}]+', Text),
|
242
|
-
(r'\s+?',
|
239
|
+
(r'\s+?', Whitespace), # Whitespace
|
243
240
|
],
|
244
241
|
'module': [
|
245
|
-
(r'\s+',
|
242
|
+
(r'\s+', Whitespace),
|
246
243
|
(r'([A-Z][\w.]*)(\s+)(\()',
|
247
|
-
bygroups(Name.Namespace,
|
244
|
+
bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'),
|
248
245
|
(r'[A-Z][\w.]*', Name.Namespace, '#pop'),
|
249
246
|
],
|
250
247
|
'funclist': [
|
251
|
-
(r'\s+',
|
248
|
+
(r'\s+', Whitespace),
|
252
249
|
(r'[A-Z]\w*', Keyword.Type),
|
253
250
|
(r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
|
254
251
|
(r'--.*$', Comment.Single),
|
@@ -286,37 +283,41 @@ class IdrisLexer(RegexLexer):
|
|
286
283
|
(r'o[0-7]+', String.Escape, '#pop'),
|
287
284
|
(r'x[\da-fA-F]+', String.Escape, '#pop'),
|
288
285
|
(r'\d+', String.Escape, '#pop'),
|
289
|
-
(r'\s
|
286
|
+
(r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop')
|
290
287
|
],
|
291
288
|
}
|
292
289
|
|
293
290
|
|
294
291
|
class AgdaLexer(RegexLexer):
|
295
292
|
"""
|
296
|
-
For the
|
297
|
-
|
293
|
+
For the Agda dependently typed functional programming language and
|
294
|
+
proof assistant.
|
298
295
|
|
299
296
|
.. versionadded:: 2.0
|
300
297
|
"""
|
301
298
|
|
302
299
|
name = 'Agda'
|
300
|
+
url = 'http://wiki.portal.chalmers.se/agda/pmwiki.php'
|
303
301
|
aliases = ['agda']
|
304
302
|
filenames = ['*.agda']
|
305
303
|
mimetypes = ['text/x-agda']
|
306
304
|
|
307
|
-
reserved =
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
305
|
+
reserved = (
|
306
|
+
'abstract', 'codata', 'coinductive', 'constructor', 'data', 'do',
|
307
|
+
'eta-equality', 'field', 'forall', 'hiding', 'in', 'inductive', 'infix',
|
308
|
+
'infixl', 'infixr', 'instance', 'interleaved', 'let', 'macro', 'mutual',
|
309
|
+
'no-eta-equality', 'open', 'overlap', 'pattern', 'postulate', 'primitive',
|
310
|
+
'private', 'quote', 'quoteTerm', 'record', 'renaming', 'rewrite',
|
311
|
+
'syntax', 'tactic', 'unquote', 'unquoteDecl', 'unquoteDef', 'using',
|
312
|
+
'variable', 'where', 'with',
|
313
|
+
)
|
314
314
|
|
315
315
|
tokens = {
|
316
316
|
'root': [
|
317
317
|
# Declaration
|
318
318
|
(r'^(\s*)([^\s(){}]+)(\s*)(:)(\s*)',
|
319
|
-
bygroups(
|
319
|
+
bygroups(Whitespace, Name.Function, Whitespace,
|
320
|
+
Operator.Word, Whitespace)),
|
320
321
|
# Comments
|
321
322
|
(r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single),
|
322
323
|
(r'\{-', Comment.Multiline, 'comment'),
|
@@ -325,7 +326,8 @@ class AgdaLexer(RegexLexer):
|
|
325
326
|
# Lexemes:
|
326
327
|
# Identifiers
|
327
328
|
(r'\b(%s)(?!\')\b' % '|'.join(reserved), Keyword.Reserved),
|
328
|
-
(r'(import|module)(\s+)', bygroups(Keyword.Reserved,
|
329
|
+
(r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace),
|
330
|
+
'module'),
|
329
331
|
(r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type),
|
330
332
|
# Special Symbols
|
331
333
|
(r'(\(|\)|\{|\})', Operator),
|
@@ -339,7 +341,7 @@ class AgdaLexer(RegexLexer):
|
|
339
341
|
(r"'", String.Char, 'character'),
|
340
342
|
(r'"', String, 'string'),
|
341
343
|
(r'[^\s(){}]+', Text),
|
342
|
-
(r'\s+?',
|
344
|
+
(r'\s+?', Whitespace), # Whitespace
|
343
345
|
],
|
344
346
|
'hole': [
|
345
347
|
# Holes
|
@@ -350,7 +352,7 @@ class AgdaLexer(RegexLexer):
|
|
350
352
|
],
|
351
353
|
'module': [
|
352
354
|
(r'\{-', Comment.Multiline, 'comment'),
|
353
|
-
(r'[a-zA-Z][\w
|
355
|
+
(r'[a-zA-Z][\w.\']*', Name, '#pop'),
|
354
356
|
(r'[\W0-9_]+', Text)
|
355
357
|
],
|
356
358
|
'comment': HaskellLexer.tokens['comment'],
|
@@ -383,7 +385,7 @@ class CryptolLexer(RegexLexer):
|
|
383
385
|
tokens = {
|
384
386
|
'root': [
|
385
387
|
# Whitespace:
|
386
|
-
(r'\s+',
|
388
|
+
(r'\s+', Whitespace),
|
387
389
|
# (r'--\s*|.*$', Comment.Doc),
|
388
390
|
(r'//.*$', Comment.Single),
|
389
391
|
(r'/\*', Comment.Multiline, 'comment'),
|
@@ -417,31 +419,31 @@ class CryptolLexer(RegexLexer):
|
|
417
419
|
],
|
418
420
|
'import': [
|
419
421
|
# Import statements
|
420
|
-
(r'\s+',
|
422
|
+
(r'\s+', Whitespace),
|
421
423
|
(r'"', String, 'string'),
|
422
424
|
# after "funclist" state
|
423
425
|
(r'\)', Punctuation, '#pop'),
|
424
426
|
(r'qualified\b', Keyword),
|
425
427
|
# import X as Y
|
426
428
|
(r'([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)',
|
427
|
-
bygroups(Name.Namespace,
|
429
|
+
bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), '#pop'),
|
428
430
|
# import X hiding (functions)
|
429
431
|
(r'([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()',
|
430
|
-
bygroups(Name.Namespace,
|
432
|
+
bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), 'funclist'),
|
431
433
|
# import X (functions)
|
432
434
|
(r'([A-Z][\w.]*)(\s+)(\()',
|
433
|
-
bygroups(Name.Namespace,
|
435
|
+
bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'),
|
434
436
|
# import X
|
435
437
|
(r'[\w.]+', Name.Namespace, '#pop'),
|
436
438
|
],
|
437
439
|
'module': [
|
438
|
-
(r'\s+',
|
440
|
+
(r'\s+', Whitespace),
|
439
441
|
(r'([A-Z][\w.]*)(\s+)(\()',
|
440
|
-
bygroups(Name.Namespace,
|
442
|
+
bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'),
|
441
443
|
(r'[A-Z][\w.]*', Name.Namespace, '#pop'),
|
442
444
|
],
|
443
445
|
'funclist': [
|
444
|
-
(r'\s+',
|
446
|
+
(r'\s+', Whitespace),
|
445
447
|
(r'[A-Z]\w*', Keyword.Type),
|
446
448
|
(r'(_[\w\']+|[a-z][\w\']*)', Name.Function),
|
447
449
|
# TODO: these don't match the comments in docs, remove.
|
@@ -478,7 +480,7 @@ class CryptolLexer(RegexLexer):
|
|
478
480
|
(r'o[0-7]+', String.Escape, '#pop'),
|
479
481
|
(r'x[\da-fA-F]+', String.Escape, '#pop'),
|
480
482
|
(r'\d+', String.Escape, '#pop'),
|
481
|
-
(r'\s
|
483
|
+
(r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop'),
|
482
484
|
],
|
483
485
|
}
|
484
486
|
|
@@ -655,13 +657,13 @@ class LiterateCryptolLexer(LiterateLexer):
|
|
655
657
|
|
656
658
|
class KokaLexer(RegexLexer):
|
657
659
|
"""
|
658
|
-
Lexer for the
|
659
|
-
language.
|
660
|
+
Lexer for the Koka language.
|
660
661
|
|
661
662
|
.. versionadded:: 1.6
|
662
663
|
"""
|
663
664
|
|
664
665
|
name = 'Koka'
|
666
|
+
url = 'https://koka-lang.github.io/koka/doc/index.html'
|
665
667
|
aliases = ['koka']
|
666
668
|
filenames = ['*.kk', '*.kki']
|
667
669
|
mimetypes = ['text/x-koka']
|
@@ -720,30 +722,30 @@ class KokaLexer(RegexLexer):
|
|
720
722
|
|
721
723
|
# go into type mode
|
722
724
|
(r'::?' + sboundary, tokenType, 'type'),
|
723
|
-
(r'(alias)(\s+)([a-z]\w*)?', bygroups(Keyword,
|
725
|
+
(r'(alias)(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef),
|
724
726
|
'alias-type'),
|
725
|
-
(r'(struct)(\s+)([a-z]\w*)?', bygroups(Keyword,
|
727
|
+
(r'(struct)(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef),
|
726
728
|
'struct-type'),
|
727
729
|
((r'(%s)' % '|'.join(typeStartKeywords)) +
|
728
|
-
r'(\s+)([a-z]\w*)?', bygroups(Keyword,
|
730
|
+
r'(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef),
|
729
731
|
'type'),
|
730
732
|
|
731
733
|
# special sequences of tokens (we use ?: for non-capturing group as
|
732
734
|
# required by 'bygroups')
|
733
|
-
(r'(module)(\s+)(interface\s+)?((?:[a-z]\w*/)*[a-z]\w*)',
|
734
|
-
bygroups(Keyword,
|
735
|
+
(r'(module)(\s+)(interface(?=\s))?(\s+)?((?:[a-z]\w*/)*[a-z]\w*)',
|
736
|
+
bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Namespace)),
|
735
737
|
(r'(import)(\s+)((?:[a-z]\w*/)*[a-z]\w*)'
|
736
|
-
r'(?:(\s*)(=)(\s*)((
|
738
|
+
r'(?:(\s*)(=)(\s*)(qualified)?(\s*)'
|
737
739
|
r'((?:[a-z]\w*/)*[a-z]\w*))?',
|
738
|
-
bygroups(Keyword,
|
739
|
-
Keyword, Name.Namespace)),
|
740
|
+
bygroups(Keyword, Whitespace, Name.Namespace, Whitespace, Keyword, Whitespace,
|
741
|
+
Keyword, Whitespace, Name.Namespace)),
|
740
742
|
|
741
|
-
(r'
|
743
|
+
(r'^(public|private)?(\s+)?(function|fun|val)'
|
742
744
|
r'(\s+)([a-z]\w*|\((?:' + symbols + r'|/)\))',
|
743
|
-
bygroups(Keyword,
|
744
|
-
(r'
|
745
|
+
bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Function)),
|
746
|
+
(r'^(?:(public|private)(?=\s+external))?((?<!^)\s+)?(external)(\s+)(inline(?=\s))?(\s+)?'
|
745
747
|
r'([a-z]\w*|\((?:' + symbols + r'|/)\))',
|
746
|
-
bygroups(Keyword,
|
748
|
+
bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Name.Function)),
|
747
749
|
|
748
750
|
# keywords
|
749
751
|
(r'(%s)' % '|'.join(typekeywords) + boundary, Keyword.Type),
|
@@ -800,7 +802,7 @@ class KokaLexer(RegexLexer):
|
|
800
802
|
(r'[(\[<]', tokenType, 'type-nested'),
|
801
803
|
(r',', tokenType),
|
802
804
|
(r'([a-z]\w*)(\s*)(:)(?!:)',
|
803
|
-
bygroups(Name,
|
805
|
+
bygroups(Name, Whitespace, tokenType)), # parameter name
|
804
806
|
include('type-content')
|
805
807
|
],
|
806
808
|
|
@@ -833,8 +835,8 @@ class KokaLexer(RegexLexer):
|
|
833
835
|
|
834
836
|
# comments and literals
|
835
837
|
'whitespace': [
|
836
|
-
(r'\n\s
|
837
|
-
(r'\s+',
|
838
|
+
(r'(\n\s*)(#.*)$', bygroups(Whitespace, Comment.Preproc)),
|
839
|
+
(r'\s+', Whitespace),
|
838
840
|
(r'/\*', Comment.Multiline, 'comment'),
|
839
841
|
(r'//.*$', Comment.Single)
|
840
842
|
],
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for Haxe and related stuff.
|
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
|
|
@@ -20,12 +20,13 @@ __all__ = ['HaxeLexer', 'HxmlLexer']
|
|
20
20
|
|
21
21
|
class HaxeLexer(ExtendedRegexLexer):
|
22
22
|
"""
|
23
|
-
For Haxe source code
|
23
|
+
For Haxe source code.
|
24
24
|
|
25
25
|
.. versionadded:: 1.3
|
26
26
|
"""
|
27
27
|
|
28
28
|
name = 'Haxe'
|
29
|
+
url = 'http://haxe.org/'
|
29
30
|
aliases = ['haxe', 'hxsl', 'hx']
|
30
31
|
filenames = ['*.hx', '*.hxsl']
|
31
32
|
mimetypes = ['text/haxe', 'text/x-haxe', 'text/x-hx']
|
@@ -103,7 +104,7 @@ class HaxeLexer(ExtendedRegexLexer):
|
|
103
104
|
|
104
105
|
# space/tab/comment/preproc
|
105
106
|
'spaces': [
|
106
|
-
(r'\s+',
|
107
|
+
(r'\s+', Whitespace),
|
107
108
|
(r'//[^\n\r]*', Comment.Single),
|
108
109
|
(r'/\*.*?\*/', Comment.Multiline),
|
109
110
|
(r'(#)(if|elseif|else|end|error)\b', preproc_callback),
|
@@ -163,14 +164,14 @@ class HaxeLexer(ExtendedRegexLexer):
|
|
163
164
|
],
|
164
165
|
|
165
166
|
'preproc-error': [
|
166
|
-
(r'\s+',
|
167
|
+
(r'\s+', Whitespace),
|
167
168
|
(r"'", String.Single, ('#pop', 'string-single')),
|
168
169
|
(r'"', String.Double, ('#pop', 'string-double')),
|
169
170
|
default('#pop'),
|
170
171
|
],
|
171
172
|
|
172
173
|
'preproc-expr': [
|
173
|
-
(r'\s+',
|
174
|
+
(r'\s+', Whitespace),
|
174
175
|
(r'\!', Comment.Preproc),
|
175
176
|
(r'\(', Comment.Preproc, ('#pop', 'preproc-parenthesis')),
|
176
177
|
|
@@ -193,20 +194,20 @@ class HaxeLexer(ExtendedRegexLexer):
|
|
193
194
|
],
|
194
195
|
|
195
196
|
'preproc-parenthesis': [
|
196
|
-
(r'\s+',
|
197
|
+
(r'\s+', Whitespace),
|
197
198
|
(r'\)', Comment.Preproc, '#pop'),
|
198
199
|
default('preproc-expr-in-parenthesis'),
|
199
200
|
],
|
200
201
|
|
201
202
|
'preproc-expr-chain': [
|
202
|
-
(r'\s+',
|
203
|
+
(r'\s+', Whitespace),
|
203
204
|
(binop, Comment.Preproc, ('#pop', 'preproc-expr-in-parenthesis')),
|
204
205
|
default('#pop'),
|
205
206
|
],
|
206
207
|
|
207
208
|
# same as 'preproc-expr' but able to chain 'preproc-expr-chain'
|
208
209
|
'preproc-expr-in-parenthesis': [
|
209
|
-
(r'\s+',
|
210
|
+
(r'\s+', Whitespace),
|
210
211
|
(r'\!', Comment.Preproc),
|
211
212
|
(r'\(', Comment.Preproc,
|
212
213
|
('#pop', 'preproc-expr-chain', 'preproc-parenthesis')),
|
@@ -896,17 +897,18 @@ class HaxeLexer(ExtendedRegexLexer):
|
|
896
897
|
|
897
898
|
class HxmlLexer(RegexLexer):
|
898
899
|
"""
|
899
|
-
Lexer for
|
900
|
+
Lexer for haXe build files.
|
900
901
|
|
901
902
|
.. versionadded:: 1.6
|
902
903
|
"""
|
903
904
|
name = 'Hxml'
|
905
|
+
url = 'https://haxe.org/manual/compiler-usage-hxml.html'
|
904
906
|
aliases = ['haxeml', 'hxml']
|
905
907
|
filenames = ['*.hxml']
|
906
908
|
|
907
909
|
tokens = {
|
908
910
|
'root': [
|
909
|
-
#
|
911
|
+
# Separator
|
910
912
|
(r'(--)(next)', bygroups(Punctuation, Generic.Heading)),
|
911
913
|
# Compiler switches with one dash
|
912
914
|
(r'(-)(prompt|debug|v)', bygroups(Punctuation, Keyword.Keyword)),
|
@@ -919,7 +921,7 @@ class HxmlLexer(RegexLexer):
|
|
919
921
|
bygroups(Punctuation, Keyword, Whitespace, String)),
|
920
922
|
# Options that take only numerical arguments
|
921
923
|
(r'(-)(swf-version)( +)(\d+)',
|
922
|
-
bygroups(Punctuation, Keyword, Number.Integer)),
|
924
|
+
bygroups(Punctuation, Keyword, Whitespace, Number.Integer)),
|
923
925
|
# An Option that defines the size, the fps and the background
|
924
926
|
# color of an flash movie
|
925
927
|
(r'(-)(swf-header)( +)(\d+)(:)(\d+)(:)(\d+)(:)([A-Fa-f0-9]{6})',
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Lexers for hardware descriptor languages.
|
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
|
|
@@ -12,7 +12,7 @@ import re
|
|
12
12
|
|
13
13
|
from pygments.lexer import RegexLexer, bygroups, include, using, this, words
|
14
14
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
15
|
-
Number, Punctuation
|
15
|
+
Number, Punctuation, Whitespace
|
16
16
|
|
17
17
|
__all__ = ['VerilogLexer', 'SystemVerilogLexer', 'VhdlLexer']
|
18
18
|
|
@@ -34,9 +34,8 @@ class VerilogLexer(RegexLexer):
|
|
34
34
|
tokens = {
|
35
35
|
'root': [
|
36
36
|
(r'^\s*`define', Comment.Preproc, 'macro'),
|
37
|
-
(r'\
|
38
|
-
(r'\
|
39
|
-
(r'\\\n', Text), # line continuation
|
37
|
+
(r'\s+', Whitespace),
|
38
|
+
(r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
|
40
39
|
(r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
|
41
40
|
(r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
|
42
41
|
(r'[{}#@]', Punctuation),
|
@@ -54,8 +53,8 @@ class VerilogLexer(RegexLexer):
|
|
54
53
|
(r'[()\[\],.;\']', Punctuation),
|
55
54
|
(r'`[a-zA-Z_]\w*', Name.Constant),
|
56
55
|
|
57
|
-
(r'^(\s*)(package)(\s+)', bygroups(
|
58
|
-
(r'^(\s*)(import)(\s+)', bygroups(
|
56
|
+
(r'^(\s*)(package)(\s+)', bygroups(Whitespace, Keyword.Namespace, Text)),
|
57
|
+
(r'^(\s*)(import)(\s+)', bygroups(Whitespace, Keyword.Namespace, Text),
|
59
58
|
'import'),
|
60
59
|
|
61
60
|
(words((
|
@@ -114,7 +113,7 @@ class VerilogLexer(RegexLexer):
|
|
114
113
|
(r'"', String, '#pop'),
|
115
114
|
(r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
|
116
115
|
(r'[^\\"\n]+', String), # all other characters
|
117
|
-
(r'
|
116
|
+
(r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
|
118
117
|
(r'\\', String), # stray backslash
|
119
118
|
],
|
120
119
|
'macro': [
|
@@ -123,7 +122,7 @@ class VerilogLexer(RegexLexer):
|
|
123
122
|
(r'//.*?\n', Comment.Single, '#pop'),
|
124
123
|
(r'/', Comment.Preproc),
|
125
124
|
(r'(?<=\\)\n', Comment.Preproc),
|
126
|
-
(r'\n',
|
125
|
+
(r'\n', Whitespace, '#pop'),
|
127
126
|
],
|
128
127
|
'import': [
|
129
128
|
(r'[\w:]+\*?', Name.Namespace, '#pop')
|
@@ -161,13 +160,12 @@ class SystemVerilogLexer(RegexLexer):
|
|
161
160
|
|
162
161
|
tokens = {
|
163
162
|
'root': [
|
164
|
-
(r'
|
165
|
-
(r'^(\s*)(package)(\s+)', bygroups(
|
166
|
-
(r'^(\s*)(import)(\s+)', bygroups(
|
163
|
+
(r'^(\s*)(`define)', bygroups(Whitespace, Comment.Preproc), 'macro'),
|
164
|
+
(r'^(\s*)(package)(\s+)', bygroups(Whitespace, Keyword.Namespace, Whitespace)),
|
165
|
+
(r'^(\s*)(import)(\s+)', bygroups(Whitespace, Keyword.Namespace, Whitespace), 'import'),
|
167
166
|
|
168
|
-
(r'\
|
169
|
-
(r'\
|
170
|
-
(r'\\\n', Text), # line continuation
|
167
|
+
(r'\s+', Whitespace),
|
168
|
+
(r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
|
171
169
|
(r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
|
172
170
|
(r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
|
173
171
|
(r'[{}#@]', Punctuation),
|
@@ -240,11 +238,11 @@ class SystemVerilogLexer(RegexLexer):
|
|
240
238
|
Keyword),
|
241
239
|
|
242
240
|
(r'(class)(\s+)([a-zA-Z_]\w*)',
|
243
|
-
bygroups(Keyword.Declaration,
|
241
|
+
bygroups(Keyword.Declaration, Whitespace, Name.Class)),
|
244
242
|
(r'(extends)(\s+)([a-zA-Z_]\w*)',
|
245
|
-
bygroups(Keyword.Declaration,
|
243
|
+
bygroups(Keyword.Declaration, Whitespace, Name.Class)),
|
246
244
|
(r'(endclass\b)(?:(\s*)(:)(\s*)([a-zA-Z_]\w*))?',
|
247
|
-
bygroups(Keyword.Declaration,
|
245
|
+
bygroups(Keyword.Declaration, Whitespace, Punctuation, Whitespace, Name.Class)),
|
248
246
|
|
249
247
|
(words((
|
250
248
|
# Variable types
|
@@ -355,16 +353,16 @@ class SystemVerilogLexer(RegexLexer):
|
|
355
353
|
(r'"', String, '#pop'),
|
356
354
|
(r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
|
357
355
|
(r'[^\\"\n]+', String), # all other characters
|
358
|
-
(r'
|
356
|
+
(r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
|
359
357
|
(r'\\', String), # stray backslash
|
360
358
|
],
|
361
359
|
'macro': [
|
362
360
|
(r'[^/\n]+', Comment.Preproc),
|
363
361
|
(r'/[*](.|\n)*?[*]/', Comment.Multiline),
|
364
|
-
(r'
|
362
|
+
(r'//.*?$', Comment.Single, '#pop'),
|
365
363
|
(r'/', Comment.Preproc),
|
366
364
|
(r'(?<=\\)\n', Comment.Preproc),
|
367
|
-
(r'\n',
|
365
|
+
(r'\n', Whitespace, '#pop'),
|
368
366
|
],
|
369
367
|
'import': [
|
370
368
|
(r'[\w:]+\*?', Name.Namespace, '#pop')
|
@@ -386,9 +384,8 @@ class VhdlLexer(RegexLexer):
|
|
386
384
|
|
387
385
|
tokens = {
|
388
386
|
'root': [
|
389
|
-
(r'\
|
390
|
-
(r'\
|
391
|
-
(r'\\\n', Text), # line continuation
|
387
|
+
(r'\s+', Whitespace),
|
388
|
+
(r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
|
392
389
|
(r'--.*?$', Comment.Single),
|
393
390
|
(r"'(U|X|0|1|Z|W|L|H|-)'", String.Char),
|
394
391
|
(r'[~!%^&*+=|?:<>/-]', Operator),
|
@@ -397,25 +394,25 @@ class VhdlLexer(RegexLexer):
|
|
397
394
|
(r'"[^\n\\"]*"', String),
|
398
395
|
|
399
396
|
(r'(library)(\s+)([a-z_]\w*)',
|
400
|
-
bygroups(Keyword,
|
401
|
-
(r'(use)(\s+)(entity)', bygroups(Keyword,
|
397
|
+
bygroups(Keyword, Whitespace, Name.Namespace)),
|
398
|
+
(r'(use)(\s+)(entity)', bygroups(Keyword, Whitespace, Keyword)),
|
402
399
|
(r'(use)(\s+)([a-z_][\w.]*\.)(all)',
|
403
|
-
bygroups(Keyword,
|
400
|
+
bygroups(Keyword, Whitespace, Name.Namespace, Keyword)),
|
404
401
|
(r'(use)(\s+)([a-z_][\w.]*)',
|
405
|
-
bygroups(Keyword,
|
402
|
+
bygroups(Keyword, Whitespace, Name.Namespace)),
|
406
403
|
(r'(std|ieee)(\.[a-z_]\w*)',
|
407
404
|
bygroups(Name.Namespace, Name.Namespace)),
|
408
405
|
(words(('std', 'ieee', 'work'), suffix=r'\b'),
|
409
406
|
Name.Namespace),
|
410
407
|
(r'(entity|component)(\s+)([a-z_]\w*)',
|
411
|
-
bygroups(Keyword,
|
408
|
+
bygroups(Keyword, Whitespace, Name.Class)),
|
412
409
|
(r'(architecture|configuration)(\s+)([a-z_]\w*)(\s+)'
|
413
410
|
r'(of)(\s+)([a-z_]\w*)(\s+)(is)',
|
414
|
-
bygroups(Keyword,
|
415
|
-
Name.Class,
|
411
|
+
bygroups(Keyword, Whitespace, Name.Class, Whitespace, Keyword, Whitespace,
|
412
|
+
Name.Class, Whitespace, Keyword)),
|
416
413
|
(r'([a-z_]\w*)(:)(\s+)(process|for)',
|
417
|
-
bygroups(Name.Class, Operator,
|
418
|
-
(r'(end)(\s+)', bygroups(using(this),
|
414
|
+
bygroups(Name.Class, Operator, Whitespace, Keyword)),
|
415
|
+
(r'(end)(\s+)', bygroups(using(this), Whitespace), 'endblock'),
|
419
416
|
|
420
417
|
include('types'),
|
421
418
|
include('keywords'),
|
@@ -426,7 +423,7 @@ class VhdlLexer(RegexLexer):
|
|
426
423
|
'endblock': [
|
427
424
|
include('keywords'),
|
428
425
|
(r'[a-z_]\w*', Name.Class),
|
429
|
-
(r'
|
426
|
+
(r'\s+', Whitespace),
|
430
427
|
(r';', Punctuation, '#pop'),
|
431
428
|
],
|
432
429
|
'types': [
|