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