pygments.rb 1.2.0 → 2.1.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 +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +40 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/.rubocop.yml +18 -0
- data/CHANGELOG.adoc +132 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +12 -21
- data/bench.rb +14 -8
- data/{cache-lexers.rb → cache_lexers.rb} +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +6 -6
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +196 -275
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -10
- data/test/test_pygments.rb +50 -110
- data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -12
- data/vendor/pygments-main/pygments/__main__.py +17 -0
- data/vendor/pygments-main/pygments/cmdline.py +213 -184
- data/vendor/pygments-main/pygments/console.py +6 -10
- data/vendor/pygments-main/pygments/filter.py +4 -7
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
- data/vendor/pygments-main/pygments/formatter.py +4 -5
- data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +242 -139
- data/vendor/pygments-main/pygments/formatters/img.py +91 -50
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
- data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
- data/vendor/pygments-main/pygments/formatters/other.py +18 -17
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
- data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
- data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
- data/vendor/pygments-main/pygments/lexer.py +47 -44
- data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
- data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
- data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
- data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
- data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
- data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
- data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
- data/vendor/pygments-main/pygments/lexers/business.py +19 -5
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
- data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
- data/vendor/pygments-main/pygments/lexers/css.py +28 -23
- data/vendor/pygments-main/pygments/lexers/d.py +12 -8
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +240 -98
- data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
- data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
- data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
- data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
- data/vendor/pygments-main/pygments/lexers/email.py +150 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
- data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
- data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
- data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
- data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
- data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
- data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
- data/vendor/pygments-main/pygments/lexers/go.py +2 -3
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
- data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
- data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +37 -26
- data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
- data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
- data/vendor/pygments-main/pygments/lexers/j.py +4 -5
- data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
- data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
- data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
- data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
- data/vendor/pygments-main/pygments/lexers/make.py +12 -9
- data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
- data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
- data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
- data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/other.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
- data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
- data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
- data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
- data/vendor/pygments-main/pygments/lexers/php.py +66 -13
- data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
- data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
- data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
- data/vendor/pygments-main/pygments/lexers/python.py +450 -231
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
- data/vendor/pygments-main/pygments/lexers/r.py +13 -276
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
- data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
- data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
- data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
- data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
- data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
- data/vendor/pygments-main/pygments/lexers/special.py +31 -28
- data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
- data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
- data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
- data/vendor/pygments-main/pygments/lexers/text.py +2 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
- data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
- data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
- data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
- data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
- data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +4 -3
- data/vendor/pygments-main/pygments/regexopt.py +1 -2
- data/vendor/pygments-main/pygments/scanner.py +2 -3
- data/vendor/pygments-main/pygments/sphinxext.py +2 -5
- data/vendor/pygments-main/pygments/style.py +61 -25
- data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
- data/vendor/pygments-main/pygments/styles/abap.py +1 -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 -2
- data/vendor/pygments-main/pygments/styles/borland.py +1 -2
- data/vendor/pygments-main/pygments/styles/bw.py +1 -2
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
- data/vendor/pygments-main/pygments/styles/default.py +1 -2
- 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/fruity.py +1 -2
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
- data/vendor/pygments-main/pygments/styles/manni.py +1 -2
- data/vendor/pygments-main/pygments/styles/material.py +118 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
- data/vendor/pygments-main/pygments/styles/native.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
- data/vendor/pygments-main/pygments/styles/sas.py +1 -2
- data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
- data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
- data/vendor/pygments-main/pygments/styles/tango.py +1 -2
- data/vendor/pygments-main/pygments/styles/trac.py +1 -2
- 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 -2
- data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
- data/vendor/pygments-main/pygments/token.py +1 -2
- data/vendor/pygments-main/pygments/unistring.py +47 -109
- data/vendor/pygments-main/pygments/util.py +16 -96
- metadata +76 -137
- data/CHANGELOG.md +0 -105
- data/README.md +0 -121
- data/circle.yml +0 -20
- data/test/test_data.c +0 -2581
- data/test/test_data.py +0 -514
- data/test/test_data_generated +0 -2582
- data/vendor/custom_lexers/github.py +0 -565
- data/vendor/pygments-main/CHANGES +0 -1186
- data/vendor/pygments-main/MANIFEST.in +0 -6
- data/vendor/pygments-main/Makefile +0 -65
- data/vendor/pygments-main/README.rst +0 -39
- data/vendor/pygments-main/REVISION +0 -1
- data/vendor/pygments-main/TODO +0 -12
- data/vendor/pygments-main/doc/Makefile +0 -153
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
- data/vendor/pygments-main/doc/conf.py +0 -241
- data/vendor/pygments-main/doc/docs/api.rst +0 -354
- data/vendor/pygments-main/doc/docs/authors.rst +0 -4
- data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
- data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
- data/vendor/pygments-main/doc/docs/filters.rst +0 -41
- data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
- data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
- data/vendor/pygments-main/doc/docs/index.rst +0 -66
- data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
- data/vendor/pygments-main/doc/docs/java.rst +0 -70
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
- data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
- data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
- data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
- data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
- data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
- data/vendor/pygments-main/doc/docs/styles.rst +0 -201
- data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
- data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
- data/vendor/pygments-main/doc/download.rst +0 -41
- data/vendor/pygments-main/doc/faq.rst +0 -139
- data/vendor/pygments-main/doc/index.rst +0 -54
- data/vendor/pygments-main/doc/languages.rst +0 -154
- data/vendor/pygments-main/doc/make.bat +0 -190
- data/vendor/pygments-main/doc/pygmentize.1 +0 -94
- data/vendor/pygments-main/external/autopygmentize +0 -101
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
- data/vendor/pygments-main/external/markdown-processor.py +0 -67
- data/vendor/pygments-main/external/moin-parser.py +0 -112
- data/vendor/pygments-main/external/pygments.bashcomp +0 -38
- data/vendor/pygments-main/external/rst-directive.py +0 -82
- data/vendor/pygments-main/pygmentize +0 -8
- data/vendor/pygments-main/pygments/lexers/github.py +0 -565
- data/vendor/pygments-main/requirements.txt +0 -5
- data/vendor/pygments-main/scripts/check_sources.py +0 -211
- data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
- data/vendor/pygments-main/scripts/epydoc.css +0 -280
- data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
- data/vendor/pygments-main/scripts/pylintrc +0 -301
- data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
- data/vendor/pygments-main/setup.cfg +0 -10
- data/vendor/pygments-main/setup.py +0 -77
- data/vendor/pygments-main/tox.ini +0 -7
- data/vendor/simplejson/.gitignore +0 -10
- data/vendor/simplejson/.travis.yml +0 -5
- data/vendor/simplejson/CHANGES.txt +0 -291
- data/vendor/simplejson/LICENSE.txt +0 -19
- data/vendor/simplejson/MANIFEST.in +0 -5
- data/vendor/simplejson/README.rst +0 -19
- data/vendor/simplejson/conf.py +0 -179
- data/vendor/simplejson/index.rst +0 -628
- data/vendor/simplejson/scripts/make_docs.py +0 -18
- data/vendor/simplejson/setup.py +0 -104
- data/vendor/simplejson/simplejson/__init__.py +0 -510
- data/vendor/simplejson/simplejson/_speedups.c +0 -2745
- data/vendor/simplejson/simplejson/decoder.py +0 -425
- data/vendor/simplejson/simplejson/encoder.py +0 -567
- data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
- data/vendor/simplejson/simplejson/scanner.py +0 -77
- data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
- data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
- data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
- data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
- data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
- data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
- data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
- data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
- data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
- data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
- data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
- data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
- data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
- data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
- data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
- data/vendor/simplejson/simplejson/tool.py +0 -39
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.css
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for CSS and related stylesheet formats.
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
@@ -16,7 +15,6 @@ from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \
|
|
|
16
15
|
default, words, inherit
|
|
17
16
|
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
|
|
18
17
|
Number, Punctuation
|
|
19
|
-
from pygments.util import iteritems
|
|
20
18
|
|
|
21
19
|
__all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer']
|
|
22
20
|
|
|
@@ -125,7 +123,7 @@ _css_properties = (
|
|
|
125
123
|
'wrap-flow', 'wrap-inside', 'wrap-through', 'writing-mode', 'z-index',
|
|
126
124
|
)
|
|
127
125
|
|
|
128
|
-
# List of keyword values obtained from:
|
|
126
|
+
# List of keyword values obtained from:
|
|
129
127
|
# http://cssvalues.com/
|
|
130
128
|
_keyword_values = (
|
|
131
129
|
'absolute', 'alias', 'all', 'all-petite-caps', 'all-scroll',
|
|
@@ -263,7 +261,7 @@ _time_units = (
|
|
|
263
261
|
's', 'ms',
|
|
264
262
|
)
|
|
265
263
|
_all_units = _angle_units + _frequency_units + _length_units + \
|
|
266
|
-
|
|
264
|
+
_resolution_units + _time_units
|
|
267
265
|
|
|
268
266
|
|
|
269
267
|
class CssLexer(RegexLexer):
|
|
@@ -290,8 +288,8 @@ class CssLexer(RegexLexer):
|
|
|
290
288
|
(r'(@)([\w-]+)', bygroups(Punctuation, Keyword), 'atrule'),
|
|
291
289
|
(r'[\w-]+', Name.Tag),
|
|
292
290
|
(r'[~^*!%&$\[\]()<>|+=@:;,./?-]', Operator),
|
|
293
|
-
(r'"(\\\\|\\
|
|
294
|
-
(r"'(\\\\|\\
|
|
291
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
292
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
295
293
|
],
|
|
296
294
|
'atrule': [
|
|
297
295
|
(r'\{', Punctuation, 'atcontent'),
|
|
@@ -311,6 +309,8 @@ class CssLexer(RegexLexer):
|
|
|
311
309
|
(words(_vendor_prefixes,), Keyword.Pseudo),
|
|
312
310
|
(r'('+r'|'.join(_css_properties)+r')(\s*)(\:)',
|
|
313
311
|
bygroups(Keyword, Text, Punctuation), 'value-start'),
|
|
312
|
+
(r'([-]+[a-zA-Z_][\w-]*)(\s*)(\:)', bygroups(Name.Variable, Text, Punctuation),
|
|
313
|
+
'value-start'),
|
|
314
314
|
(r'([a-zA-Z_][\w-]*)(\s*)(\:)', bygroups(Name, Text, Punctuation),
|
|
315
315
|
'value-start'),
|
|
316
316
|
|
|
@@ -322,26 +322,29 @@ class CssLexer(RegexLexer):
|
|
|
322
322
|
include('urls'),
|
|
323
323
|
(r'('+r'|'.join(_functional_notation_keyword_values)+r')(\()',
|
|
324
324
|
bygroups(Name.Builtin, Punctuation), 'function-start'),
|
|
325
|
-
(r'([a-zA-Z_][\w-]+)(\()',
|
|
325
|
+
(r'([a-zA-Z_][\w-]+)(\()',
|
|
326
|
+
bygroups(Name.Function, Punctuation), 'function-start'),
|
|
326
327
|
(words(_keyword_values, suffix=r'\b'), Keyword.Constant),
|
|
327
328
|
(words(_other_keyword_values, suffix=r'\b'), Keyword.Constant),
|
|
328
329
|
(words(_color_keywords, suffix=r'\b'), Keyword.Constant),
|
|
329
|
-
|
|
330
|
+
# for transition-property etc.
|
|
331
|
+
(words(_css_properties, suffix=r'\b'), Keyword),
|
|
330
332
|
(r'\!important', Comment.Preproc),
|
|
331
333
|
(r'/\*(?:.|\n)*?\*/', Comment),
|
|
332
334
|
|
|
333
335
|
include('numeric-values'),
|
|
334
|
-
|
|
336
|
+
|
|
335
337
|
(r'[~^*!%&<>|+=@:./?-]+', Operator),
|
|
336
338
|
(r'[\[\](),]+', Punctuation),
|
|
337
|
-
(r'"(\\\\|\\
|
|
338
|
-
(r"'(\\\\|\\
|
|
339
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
340
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
339
341
|
(r'[a-zA-Z_][\w-]*', Name),
|
|
340
342
|
(r';', Punctuation, '#pop'),
|
|
341
343
|
(r'\}', Punctuation, '#pop:2'),
|
|
342
344
|
],
|
|
343
345
|
'function-start': [
|
|
344
346
|
(r'\s+', Text),
|
|
347
|
+
(r'[-]+([\w+]+[-]*)+', Name.Variable),
|
|
345
348
|
include('urls'),
|
|
346
349
|
(words(_vendor_prefixes,), Keyword.Pseudo),
|
|
347
350
|
(words(_keyword_values, suffix=r'\b'), Keyword.Constant),
|
|
@@ -351,14 +354,15 @@ class CssLexer(RegexLexer):
|
|
|
351
354
|
# function-start may be entered recursively
|
|
352
355
|
(r'(' + r'|'.join(_functional_notation_keyword_values) + r')(\()',
|
|
353
356
|
bygroups(Name.Builtin, Punctuation), 'function-start'),
|
|
354
|
-
(r'([a-zA-Z_][\w-]+)(\()',
|
|
357
|
+
(r'([a-zA-Z_][\w-]+)(\()',
|
|
358
|
+
bygroups(Name.Function, Punctuation), 'function-start'),
|
|
355
359
|
|
|
356
360
|
(r'/\*(?:.|\n)*?\*/', Comment),
|
|
357
361
|
include('numeric-values'),
|
|
358
362
|
(r'[*+/-]', Operator),
|
|
359
|
-
(r'
|
|
360
|
-
(r'"(\\\\|\\
|
|
361
|
-
(r"'(\\\\|\\
|
|
363
|
+
(r',', Punctuation),
|
|
364
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
365
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
362
366
|
(r'[a-zA-Z_-]\w*', Name),
|
|
363
367
|
(r'\)', Punctuation, '#pop'),
|
|
364
368
|
],
|
|
@@ -373,8 +377,8 @@ class CssLexer(RegexLexer):
|
|
|
373
377
|
'numeric-values': [
|
|
374
378
|
(r'\#[a-zA-Z0-9]{1,6}', Number.Hex),
|
|
375
379
|
(r'[+\-]?[0-9]*[.][0-9]+', Number.Float, 'numeric-end'),
|
|
376
|
-
(r'[+\-]?[0-9]+', Number.Integer, 'numeric-end'),
|
|
377
|
-
],
|
|
380
|
+
(r'[+\-]?[0-9]+', Number.Integer, 'numeric-end'),
|
|
381
|
+
],
|
|
378
382
|
'numeric-end': [
|
|
379
383
|
(words(_all_units, suffix=r'\b'), Keyword.Type),
|
|
380
384
|
(r'%', Keyword.Type),
|
|
@@ -394,7 +398,7 @@ common_sass_tokens = {
|
|
|
394
398
|
'behind', 'below', 'bidi-override', 'blink', 'block', 'bold', 'bolder', 'both',
|
|
395
399
|
'capitalize', 'center-left', 'center-right', 'center', 'circle',
|
|
396
400
|
'cjk-ideographic', 'close-quote', 'collapse', 'condensed', 'continuous',
|
|
397
|
-
'
|
|
401
|
+
'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
|
|
398
402
|
'decimal', 'default', 'digits', 'disc', 'dotted', 'double', 'e-resize', 'embed',
|
|
399
403
|
'extra-condensed', 'extra-expanded', 'expanded', 'fantasy', 'far-left',
|
|
400
404
|
'far-right', 'faster', 'fast', 'fixed', 'georgian', 'groove', 'hebrew', 'help',
|
|
@@ -466,9 +470,9 @@ common_sass_tokens = {
|
|
|
466
470
|
],
|
|
467
471
|
|
|
468
472
|
'string-single': [
|
|
469
|
-
(r"(\\.|#(?=[^\n{])|[^\n'#])+", String.
|
|
473
|
+
(r"(\\.|#(?=[^\n{])|[^\n'#])+", String.Single),
|
|
470
474
|
(r'#\{', String.Interpol, 'interpolation'),
|
|
471
|
-
(r"'", String.
|
|
475
|
+
(r"'", String.Single, '#pop'),
|
|
472
476
|
],
|
|
473
477
|
|
|
474
478
|
'string-url': [
|
|
@@ -609,7 +613,7 @@ class SassLexer(ExtendedRegexLexer):
|
|
|
609
613
|
(r"\*/", Comment, '#pop'),
|
|
610
614
|
],
|
|
611
615
|
}
|
|
612
|
-
for group, common in
|
|
616
|
+
for group, common in common_sass_tokens.items():
|
|
613
617
|
tokens[group] = copy.copy(common)
|
|
614
618
|
tokens['value'].append((r'\n', Text, 'root'))
|
|
615
619
|
tokens['selector'].append((r'\n', Text, 'root'))
|
|
@@ -659,7 +663,7 @@ class ScssLexer(RegexLexer):
|
|
|
659
663
|
(r"\*/", Comment, '#pop'),
|
|
660
664
|
],
|
|
661
665
|
}
|
|
662
|
-
for group, common in
|
|
666
|
+
for group, common in common_sass_tokens.items():
|
|
663
667
|
tokens[group] = copy.copy(common)
|
|
664
668
|
tokens['value'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
|
|
665
669
|
tokens['selector'].extend([(r'\n', Text), (r'[;{}]', Punctuation, '#pop')])
|
|
@@ -684,6 +688,7 @@ class LessCssLexer(CssLexer):
|
|
|
684
688
|
],
|
|
685
689
|
'content': [
|
|
686
690
|
(r'\{', Punctuation, '#push'),
|
|
691
|
+
(r'//.*\n', Comment.Single),
|
|
687
692
|
inherit,
|
|
688
693
|
],
|
|
689
694
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.d
|
|
4
3
|
~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for D languages.
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
@@ -47,11 +46,16 @@ class DLexer(RegexLexer):
|
|
|
47
46
|
'module', 'new', 'nothrow', 'out', 'override', 'package', 'pragma',
|
|
48
47
|
'private', 'protected', 'public', 'pure', 'ref', 'return', 'scope',
|
|
49
48
|
'shared', 'static', 'struct', 'super', 'switch', 'synchronized',
|
|
50
|
-
'template', 'this', 'throw', 'try', '
|
|
49
|
+
'template', 'this', 'throw', 'try', 'typeid', 'typeof',
|
|
51
50
|
'union', 'unittest', 'version', 'volatile', 'while', 'with',
|
|
52
51
|
'__gshared', '__traits', '__vector', '__parameters'),
|
|
53
52
|
suffix=r'\b'),
|
|
54
53
|
Keyword),
|
|
54
|
+
(words((
|
|
55
|
+
# Removed in 2.072
|
|
56
|
+
'typedef', ),
|
|
57
|
+
suffix=r'\b'),
|
|
58
|
+
Keyword.Removed),
|
|
55
59
|
(words((
|
|
56
60
|
'bool', 'byte', 'cdouble', 'cent', 'cfloat', 'char', 'creal',
|
|
57
61
|
'dchar', 'double', 'float', 'idouble', 'ifloat', 'int', 'ireal',
|
|
@@ -60,9 +64,9 @@ class DLexer(RegexLexer):
|
|
|
60
64
|
Keyword.Type),
|
|
61
65
|
(r'(false|true|null)\b', Keyword.Constant),
|
|
62
66
|
(words((
|
|
63
|
-
'__FILE__', '__MODULE__', '__LINE__', '__FUNCTION__',
|
|
64
|
-
'', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__',
|
|
65
|
-
'__VERSION__'), suffix=r'\b'),
|
|
67
|
+
'__FILE__', '__FILE_FULL_PATH__', '__MODULE__', '__LINE__', '__FUNCTION__',
|
|
68
|
+
'__PRETTY_FUNCTION__', '__DATE__', '__EOF__', '__TIME__', '__TIMESTAMP__',
|
|
69
|
+
'__VENDOR__', '__VERSION__'), suffix=r'\b'),
|
|
66
70
|
Keyword.Pseudo),
|
|
67
71
|
(r'macro\b', Keyword.Reserved),
|
|
68
72
|
(r'(string|wstring|dstring|size_t|ptrdiff_t)\b', Name.Builtin),
|
|
@@ -93,7 +97,7 @@ class DLexer(RegexLexer):
|
|
|
93
97
|
# -- AlternateWysiwygString
|
|
94
98
|
(r'`[^`]*`[cwd]?', String),
|
|
95
99
|
# -- DoubleQuotedString
|
|
96
|
-
(r'"(\\\\|\\
|
|
100
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"[cwd]?', String),
|
|
97
101
|
# -- EscapeSequence
|
|
98
102
|
(r"\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}"
|
|
99
103
|
r"|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)",
|
|
@@ -224,7 +228,7 @@ class CrocLexer(RegexLexer):
|
|
|
224
228
|
(r'@`(``|[^`])*`', String),
|
|
225
229
|
(r"@'(''|[^'])*'", String),
|
|
226
230
|
# -- DoubleQuotedString
|
|
227
|
-
(r'"(\\\\|\\
|
|
231
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
|
228
232
|
# Tokens
|
|
229
233
|
(r'(~=|\^=|%=|\*=|==|!=|>>>=|>>>|>>=|>>|>=|<=>|\?=|-\>'
|
|
230
234
|
r'|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.|/=)'
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.dalvik
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Pygments lexers for Dalvik VM-related languages.
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.data
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for data file format.
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
12
11
|
import re
|
|
13
12
|
|
|
14
|
-
from pygments.lexer import RegexLexer, ExtendedRegexLexer, LexerContext, \
|
|
13
|
+
from pygments.lexer import Lexer, RegexLexer, ExtendedRegexLexer, LexerContext, \
|
|
15
14
|
include, bygroups, inherit
|
|
16
15
|
from pygments.token import Text, Comment, Keyword, Name, String, Number, \
|
|
17
16
|
Punctuation, Literal, Error
|
|
@@ -23,7 +22,7 @@ class YamlLexerContext(LexerContext):
|
|
|
23
22
|
"""Indentation context for the YAML lexer."""
|
|
24
23
|
|
|
25
24
|
def __init__(self, *args, **kwds):
|
|
26
|
-
super(
|
|
25
|
+
super().__init__(*args, **kwds)
|
|
27
26
|
self.indent_stack = []
|
|
28
27
|
self.indent = -1
|
|
29
28
|
self.next_indent = 0
|
|
@@ -205,7 +204,7 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
205
204
|
bygroups(Text, Number), 'ignored-line'),
|
|
206
205
|
],
|
|
207
206
|
|
|
208
|
-
# the %
|
|
207
|
+
# the %TAG directive
|
|
209
208
|
'tag-directive': [
|
|
210
209
|
# a tag handle and the corresponding prefix
|
|
211
210
|
(r'([ ]+)(!|![\w-]*!)'
|
|
@@ -218,7 +217,7 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
218
217
|
'indentation': [
|
|
219
218
|
# trailing whitespaces are ignored
|
|
220
219
|
(r'[ ]*$', something(Text), '#pop:2'),
|
|
221
|
-
# whitespaces
|
|
220
|
+
# whitespaces preceding block collection indicators
|
|
222
221
|
(r'[ ]+(?=[?:-](?:[ ]|$))', save_indent(Text)),
|
|
223
222
|
# block collection indicators
|
|
224
223
|
(r'[?:-](?=[ ]|$)', set_indent(Punctuation.Indicator)),
|
|
@@ -232,6 +231,9 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
232
231
|
(r'[ ]*(?=#|$)', something(Text), '#pop'),
|
|
233
232
|
# whitespaces separating tokens
|
|
234
233
|
(r'[ ]+', Text),
|
|
234
|
+
# key with colon
|
|
235
|
+
(r'''([^#,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
|
|
236
|
+
bygroups(Name.Tag, set_indent(Punctuation, implicit=True))),
|
|
235
237
|
# tags, anchors and aliases,
|
|
236
238
|
include('descriptors'),
|
|
237
239
|
# block collections and scalars
|
|
@@ -250,7 +252,7 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
250
252
|
(r'!<[\w#;/?:@&=+$,.!~*\'()\[\]%-]+>', Keyword.Type),
|
|
251
253
|
# a tag in the form '!', '!suffix' or '!handle!suffix'
|
|
252
254
|
(r'!(?:[\w-]+!)?'
|
|
253
|
-
r'[\w#;/?:@&=+$,.!~*\'()\[\]%-]
|
|
255
|
+
r'[\w#;/?:@&=+$,.!~*\'()\[\]%-]*', Keyword.Type),
|
|
254
256
|
# an anchor
|
|
255
257
|
(r'&[\w-]+', Name.Label),
|
|
256
258
|
# an alias
|
|
@@ -308,6 +310,9 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
308
310
|
|
|
309
311
|
# a flow mapping indicated by '{' and '}'
|
|
310
312
|
'flow-mapping': [
|
|
313
|
+
# key with colon
|
|
314
|
+
(r'''([^,:?\[\]{}"'\n]+)(:)(?=[ ]|$)''',
|
|
315
|
+
bygroups(Name.Tag, Punctuation)),
|
|
311
316
|
# include flow collection rules
|
|
312
317
|
include('flow-collection'),
|
|
313
318
|
# the closing indicator
|
|
@@ -427,10 +432,10 @@ class YamlLexer(ExtendedRegexLexer):
|
|
|
427
432
|
def get_tokens_unprocessed(self, text=None, context=None):
|
|
428
433
|
if context is None:
|
|
429
434
|
context = YamlLexerContext(text, 0)
|
|
430
|
-
return super(
|
|
435
|
+
return super().get_tokens_unprocessed(text, context)
|
|
431
436
|
|
|
432
437
|
|
|
433
|
-
class JsonLexer(
|
|
438
|
+
class JsonLexer(Lexer):
|
|
434
439
|
"""
|
|
435
440
|
For JSON data structures.
|
|
436
441
|
|
|
@@ -438,75 +443,192 @@ class JsonLexer(RegexLexer):
|
|
|
438
443
|
"""
|
|
439
444
|
|
|
440
445
|
name = 'JSON'
|
|
441
|
-
aliases = ['json']
|
|
442
|
-
filenames = ['*.json']
|
|
443
|
-
mimetypes = ['application/json']
|
|
446
|
+
aliases = ['json', 'json-object']
|
|
447
|
+
filenames = ['*.json', 'Pipfile.lock']
|
|
448
|
+
mimetypes = ['application/json', 'application/json-object']
|
|
449
|
+
|
|
450
|
+
# No validation of integers, floats, or constants is done.
|
|
451
|
+
# As long as the characters are members of the following
|
|
452
|
+
# sets, the token will be considered valid. For example,
|
|
453
|
+
#
|
|
454
|
+
# "--1--" is parsed as an integer
|
|
455
|
+
# "1...eee" is parsed as a float
|
|
456
|
+
# "trustful" is parsed as a constant
|
|
457
|
+
#
|
|
458
|
+
integers = set('-0123456789')
|
|
459
|
+
floats = set('.eE+')
|
|
460
|
+
constants = set('truefalsenull') # true|false|null
|
|
461
|
+
hexadecimals = set('0123456789abcdefABCDEF')
|
|
462
|
+
punctuations = set('{}[],')
|
|
463
|
+
whitespaces = {'\u0020', '\u000a', '\u000d', '\u0009'}
|
|
464
|
+
|
|
465
|
+
def get_tokens_unprocessed(self, text):
|
|
466
|
+
"""Parse JSON data."""
|
|
467
|
+
|
|
468
|
+
in_string = False
|
|
469
|
+
in_escape = False
|
|
470
|
+
in_unicode_escape = 0
|
|
471
|
+
in_whitespace = False
|
|
472
|
+
in_constant = False
|
|
473
|
+
in_number = False
|
|
474
|
+
in_float = False
|
|
475
|
+
in_punctuation = False
|
|
476
|
+
|
|
477
|
+
start = 0
|
|
478
|
+
|
|
479
|
+
# The queue is used to store data that may need to be tokenized
|
|
480
|
+
# differently based on what follows. In particular, JSON object
|
|
481
|
+
# keys are tokenized differently than string values, but cannot
|
|
482
|
+
# be distinguished until punctuation is encountered outside the
|
|
483
|
+
# string.
|
|
484
|
+
#
|
|
485
|
+
# A ":" character after the string indicates that the string is
|
|
486
|
+
# an object key; any other character indicates the string is a
|
|
487
|
+
# regular string value.
|
|
488
|
+
#
|
|
489
|
+
# The queue holds tuples that contain the following data:
|
|
490
|
+
#
|
|
491
|
+
# (start_index, token_type, text)
|
|
492
|
+
#
|
|
493
|
+
# By default the token type of text in double quotes is
|
|
494
|
+
# String.Double. The token type will be replaced if a colon
|
|
495
|
+
# is encountered after the string closes.
|
|
496
|
+
#
|
|
497
|
+
queue = []
|
|
498
|
+
|
|
499
|
+
for stop, character in enumerate(text):
|
|
500
|
+
if in_string:
|
|
501
|
+
if in_unicode_escape:
|
|
502
|
+
if character in self.hexadecimals:
|
|
503
|
+
in_unicode_escape -= 1
|
|
504
|
+
if not in_unicode_escape:
|
|
505
|
+
in_escape = False
|
|
506
|
+
else:
|
|
507
|
+
in_unicode_escape = 0
|
|
508
|
+
in_escape = False
|
|
509
|
+
|
|
510
|
+
elif in_escape:
|
|
511
|
+
if character == 'u':
|
|
512
|
+
in_unicode_escape = 4
|
|
513
|
+
else:
|
|
514
|
+
in_escape = False
|
|
515
|
+
|
|
516
|
+
elif character == '\\':
|
|
517
|
+
in_escape = True
|
|
518
|
+
|
|
519
|
+
elif character == '"':
|
|
520
|
+
queue.append((start, String.Double, text[start:stop + 1]))
|
|
521
|
+
in_string = False
|
|
522
|
+
in_escape = False
|
|
523
|
+
in_unicode_escape = 0
|
|
524
|
+
|
|
525
|
+
continue
|
|
526
|
+
|
|
527
|
+
elif in_whitespace:
|
|
528
|
+
if character in self.whitespaces:
|
|
529
|
+
continue
|
|
530
|
+
|
|
531
|
+
if queue:
|
|
532
|
+
queue.append((start, Text, text[start:stop]))
|
|
533
|
+
else:
|
|
534
|
+
yield start, Text, text[start:stop]
|
|
535
|
+
in_whitespace = False
|
|
536
|
+
# Fall through so the new character can be evaluated.
|
|
537
|
+
|
|
538
|
+
elif in_constant:
|
|
539
|
+
if character in self.constants:
|
|
540
|
+
continue
|
|
541
|
+
|
|
542
|
+
yield start, Keyword.Constant, text[start:stop]
|
|
543
|
+
in_constant = False
|
|
544
|
+
# Fall through so the new character can be evaluated.
|
|
545
|
+
|
|
546
|
+
elif in_number:
|
|
547
|
+
if character in self.integers:
|
|
548
|
+
continue
|
|
549
|
+
elif character in self.floats:
|
|
550
|
+
in_float = True
|
|
551
|
+
continue
|
|
552
|
+
|
|
553
|
+
if in_float:
|
|
554
|
+
yield start, Number.Float, text[start:stop]
|
|
555
|
+
else:
|
|
556
|
+
yield start, Number.Integer, text[start:stop]
|
|
557
|
+
in_number = False
|
|
558
|
+
in_float = False
|
|
559
|
+
# Fall through so the new character can be evaluated.
|
|
560
|
+
|
|
561
|
+
elif in_punctuation:
|
|
562
|
+
if character in self.punctuations:
|
|
563
|
+
continue
|
|
564
|
+
|
|
565
|
+
yield start, Punctuation, text[start:stop]
|
|
566
|
+
in_punctuation = False
|
|
567
|
+
# Fall through so the new character can be evaluated.
|
|
568
|
+
|
|
569
|
+
start = stop
|
|
570
|
+
|
|
571
|
+
if character == '"':
|
|
572
|
+
in_string = True
|
|
573
|
+
|
|
574
|
+
elif character in self.whitespaces:
|
|
575
|
+
in_whitespace = True
|
|
576
|
+
|
|
577
|
+
elif character in {'f', 'n', 't'}: # The first letters of true|false|null
|
|
578
|
+
# Exhaust the queue. Accept the existing token types.
|
|
579
|
+
yield from queue
|
|
580
|
+
queue.clear()
|
|
581
|
+
|
|
582
|
+
in_constant = True
|
|
583
|
+
|
|
584
|
+
elif character in self.integers:
|
|
585
|
+
# Exhaust the queue. Accept the existing token types.
|
|
586
|
+
yield from queue
|
|
587
|
+
queue.clear()
|
|
588
|
+
|
|
589
|
+
in_number = True
|
|
590
|
+
|
|
591
|
+
elif character == ':':
|
|
592
|
+
# Yield from the queue. Replace string token types.
|
|
593
|
+
for _start, _token, _text in queue:
|
|
594
|
+
if _token is Text:
|
|
595
|
+
yield _start, _token, _text
|
|
596
|
+
elif _token is String.Double:
|
|
597
|
+
yield _start, Name.Tag, _text
|
|
598
|
+
else:
|
|
599
|
+
yield _start, Error, _text
|
|
600
|
+
queue.clear()
|
|
601
|
+
|
|
602
|
+
in_punctuation = True
|
|
603
|
+
|
|
604
|
+
elif character in self.punctuations:
|
|
605
|
+
# Exhaust the queue. Accept the existing token types.
|
|
606
|
+
yield from queue
|
|
607
|
+
queue.clear()
|
|
608
|
+
|
|
609
|
+
in_punctuation = True
|
|
444
610
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
Number.Float),
|
|
467
|
-
(int_part, Number.Integer),
|
|
468
|
-
(r'"(\\\\|\\"|[^"])*"', String.Double),
|
|
469
|
-
],
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
# the right hand side of an object, after the attribute name
|
|
473
|
-
'objectattribute': [
|
|
474
|
-
include('value'),
|
|
475
|
-
(r':', Punctuation),
|
|
476
|
-
# comma terminates the attribute but expects more
|
|
477
|
-
(r',', Punctuation, '#pop'),
|
|
478
|
-
# a closing bracket terminates the entire object, so pop twice
|
|
479
|
-
(r'\}', Punctuation, '#pop:2'),
|
|
480
|
-
],
|
|
481
|
-
|
|
482
|
-
# a json object - { attr, attr, ... }
|
|
483
|
-
'objectvalue': [
|
|
484
|
-
include('whitespace'),
|
|
485
|
-
(r'"(\\\\|\\"|[^"])*"', Name.Tag, 'objectattribute'),
|
|
486
|
-
(r'\}', Punctuation, '#pop'),
|
|
487
|
-
],
|
|
488
|
-
|
|
489
|
-
# json array - [ value, value, ... }
|
|
490
|
-
'arrayvalue': [
|
|
491
|
-
include('whitespace'),
|
|
492
|
-
include('value'),
|
|
493
|
-
(r',', Punctuation),
|
|
494
|
-
(r'\]', Punctuation, '#pop'),
|
|
495
|
-
],
|
|
496
|
-
|
|
497
|
-
# a json value - either a simple value or a complex value (object or array)
|
|
498
|
-
'value': [
|
|
499
|
-
include('whitespace'),
|
|
500
|
-
include('simplevalue'),
|
|
501
|
-
(r'\{', Punctuation, 'objectvalue'),
|
|
502
|
-
(r'\[', Punctuation, 'arrayvalue'),
|
|
503
|
-
],
|
|
504
|
-
|
|
505
|
-
# the root of a json document whould be a value
|
|
506
|
-
'root': [
|
|
507
|
-
include('value'),
|
|
508
|
-
],
|
|
509
|
-
}
|
|
611
|
+
else:
|
|
612
|
+
# Exhaust the queue. Accept the existing token types.
|
|
613
|
+
yield from queue
|
|
614
|
+
queue.clear()
|
|
615
|
+
|
|
616
|
+
yield start, Error, character
|
|
617
|
+
|
|
618
|
+
# Yield any remaining text.
|
|
619
|
+
yield from queue
|
|
620
|
+
if in_string:
|
|
621
|
+
yield start, Error, text[start:]
|
|
622
|
+
elif in_float:
|
|
623
|
+
yield start, Number.Float, text[start:]
|
|
624
|
+
elif in_number:
|
|
625
|
+
yield start, Number.Integer, text[start:]
|
|
626
|
+
elif in_constant:
|
|
627
|
+
yield start, Keyword.Constant, text[start:]
|
|
628
|
+
elif in_whitespace:
|
|
629
|
+
yield start, Text, text[start:]
|
|
630
|
+
elif in_punctuation:
|
|
631
|
+
yield start, Punctuation, text[start:]
|
|
510
632
|
|
|
511
633
|
|
|
512
634
|
class JsonBareObjectLexer(JsonLexer):
|
|
@@ -514,28 +636,21 @@ class JsonBareObjectLexer(JsonLexer):
|
|
|
514
636
|
For JSON data structures (with missing object curly braces).
|
|
515
637
|
|
|
516
638
|
.. versionadded:: 2.2
|
|
639
|
+
|
|
640
|
+
.. deprecated:: 2.8.0
|
|
641
|
+
|
|
642
|
+
Behaves the same as `JsonLexer` now.
|
|
517
643
|
"""
|
|
518
644
|
|
|
519
645
|
name = 'JSONBareObject'
|
|
520
|
-
aliases = [
|
|
646
|
+
aliases = []
|
|
521
647
|
filenames = []
|
|
522
|
-
mimetypes = [
|
|
523
|
-
|
|
524
|
-
tokens = {
|
|
525
|
-
'root': [
|
|
526
|
-
(r'\}', Error),
|
|
527
|
-
include('objectvalue'),
|
|
528
|
-
],
|
|
529
|
-
'objectattribute': [
|
|
530
|
-
(r'\}', Error),
|
|
531
|
-
inherit,
|
|
532
|
-
],
|
|
533
|
-
}
|
|
648
|
+
mimetypes = []
|
|
534
649
|
|
|
535
650
|
|
|
536
651
|
class JsonLdLexer(JsonLexer):
|
|
537
652
|
"""
|
|
538
|
-
For `JSON-LD <
|
|
653
|
+
For `JSON-LD <https://json-ld.org/>`_ linked data.
|
|
539
654
|
|
|
540
655
|
.. versionadded:: 2.0
|
|
541
656
|
"""
|
|
@@ -545,11 +660,38 @@ class JsonLdLexer(JsonLexer):
|
|
|
545
660
|
filenames = ['*.jsonld']
|
|
546
661
|
mimetypes = ['application/ld+json']
|
|
547
662
|
|
|
548
|
-
|
|
549
|
-
'
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
663
|
+
json_ld_keywords = {
|
|
664
|
+
'"@%s"' % keyword
|
|
665
|
+
for keyword in (
|
|
666
|
+
'base',
|
|
667
|
+
'container',
|
|
668
|
+
'context',
|
|
669
|
+
'direction',
|
|
670
|
+
'graph',
|
|
671
|
+
'id',
|
|
672
|
+
'import',
|
|
673
|
+
'included',
|
|
674
|
+
'index',
|
|
675
|
+
'json',
|
|
676
|
+
'language',
|
|
677
|
+
'list',
|
|
678
|
+
'nest',
|
|
679
|
+
'none',
|
|
680
|
+
'prefix',
|
|
681
|
+
'propagate',
|
|
682
|
+
'protected',
|
|
683
|
+
'reverse',
|
|
684
|
+
'set',
|
|
685
|
+
'type',
|
|
686
|
+
'value',
|
|
687
|
+
'version',
|
|
688
|
+
'vocab',
|
|
689
|
+
)
|
|
555
690
|
}
|
|
691
|
+
|
|
692
|
+
def get_tokens_unprocessed(self, text):
|
|
693
|
+
for start, token, value in super().get_tokens_unprocessed(text):
|
|
694
|
+
if token is Name.Tag and value in self.json_ld_keywords:
|
|
695
|
+
yield start, Name.Decorator, value
|
|
696
|
+
else:
|
|
697
|
+
yield start, token, value
|