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 the REBOL and related 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
|
|
|
@@ -102,12 +102,12 @@ class RebolLexer(RegexLexer):
|
|
|
102
102
|
yield match.start(), Generic.Heading, word
|
|
103
103
|
elif re.match("to-.*", word):
|
|
104
104
|
yield match.start(), Keyword, word
|
|
105
|
-
elif re.match('(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
|
|
105
|
+
elif re.match(r'(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
|
|
106
106
|
word):
|
|
107
107
|
yield match.start(), Operator, word
|
|
108
|
-
elif re.match(".*\?$", word):
|
|
108
|
+
elif re.match(r".*\?$", word):
|
|
109
109
|
yield match.start(), Keyword, word
|
|
110
|
-
elif re.match(".*\!$", word):
|
|
110
|
+
elif re.match(r".*\!$", word):
|
|
111
111
|
yield match.start(), Keyword.Type, word
|
|
112
112
|
elif re.match("'.*", word):
|
|
113
113
|
yield match.start(), Name.Variable.Instance, word # lit-word
|
|
@@ -239,7 +239,7 @@ class RebolLexer(RegexLexer):
|
|
|
239
239
|
if re.match(r'^\s*REBOL\s*\[', text, re.IGNORECASE):
|
|
240
240
|
# The code starts with REBOL header
|
|
241
241
|
return 1.0
|
|
242
|
-
elif re.search(r'\s*REBOL\s
|
|
242
|
+
elif re.search(r'\s*REBOL\s*\[', text, re.IGNORECASE):
|
|
243
243
|
# The code contains REBOL header but also some text before it
|
|
244
244
|
return 0.5
|
|
245
245
|
|
|
@@ -297,10 +297,10 @@ class RedLexer(RegexLexer):
|
|
|
297
297
|
yield match.start(), Keyword.Namespace, word
|
|
298
298
|
elif re.match("to-.*", word):
|
|
299
299
|
yield match.start(), Keyword, word
|
|
300
|
-
elif re.match('(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|'
|
|
301
|
-
'<<<|>>>|<<|>>|<|>%)$', word):
|
|
300
|
+
elif re.match(r'(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|'
|
|
301
|
+
r'<<<|>>>|<<|>>|<|>%)$', word):
|
|
302
302
|
yield match.start(), Operator, word
|
|
303
|
-
elif re.match(".*\!$", word):
|
|
303
|
+
elif re.match(r".*\!$", word):
|
|
304
304
|
yield match.start(), Keyword.Type, word
|
|
305
305
|
elif re.match("'.*", word):
|
|
306
306
|
yield match.start(), Name.Variable.Instance, word # lit-word
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexer for resource definition files.
|
|
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
|
|
|
@@ -26,7 +26,7 @@ class ResourceLexer(RegexLexer):
|
|
|
26
26
|
"""
|
|
27
27
|
name = 'ResourceBundle'
|
|
28
28
|
aliases = ['resource', 'resourcebundle']
|
|
29
|
-
filenames = [
|
|
29
|
+
filenames = []
|
|
30
30
|
|
|
31
31
|
_types = (':table', ':array', ':string', ':bin', ':import', ':intvector',
|
|
32
32
|
':int', ':alias')
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
pygments.lexers.ride
|
|
4
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
5
|
+
|
|
6
|
+
Lexer for the Ride programming language.
|
|
7
|
+
|
|
8
|
+
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
|
9
|
+
:license: BSD, see LICENSE for details.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from pygments.lexer import RegexLexer, words, include
|
|
13
|
+
from pygments.token import Comment, Keyword, Name, Number, Punctuation, String, Text
|
|
14
|
+
|
|
15
|
+
__all__ = ['RideLexer']
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RideLexer(RegexLexer):
|
|
19
|
+
"""
|
|
20
|
+
For `Ride <https://docs.wavesplatform.com/en/ride/about-ride.html>`_
|
|
21
|
+
source code.
|
|
22
|
+
|
|
23
|
+
.. versionadded:: 2.6
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
name = 'Ride'
|
|
27
|
+
aliases = ['ride']
|
|
28
|
+
filenames = ['*.ride']
|
|
29
|
+
mimetypes = ['text/x-ride']
|
|
30
|
+
|
|
31
|
+
validName = r'[a-zA-Z_][a-zA-Z0-9_\']*'
|
|
32
|
+
|
|
33
|
+
builtinOps = (
|
|
34
|
+
'||', '|', '>=', '>', '==', '!',
|
|
35
|
+
'=', '<=', '<', '::', ':+', ':', '!=', '/',
|
|
36
|
+
'.', '=>', '-', '+', '*', '&&', '%', '++',
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
globalVariablesName = (
|
|
40
|
+
'NOALG', 'MD5', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512',
|
|
41
|
+
'SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'nil', 'this', 'unit',
|
|
42
|
+
'height', 'lastBlock', 'Buy', 'Sell', 'CEILING', 'FLOOR', 'DOWN',
|
|
43
|
+
'HALFDOWN', 'HALFEVEN', 'HALFUP', 'UP',
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
typesName = (
|
|
47
|
+
'Unit', 'Int', 'Boolean', 'ByteVector', 'String', 'Address', 'Alias',
|
|
48
|
+
'Transfer', 'AssetPair', 'DataEntry', 'Order', 'Transaction',
|
|
49
|
+
'GenesisTransaction', 'PaymentTransaction', 'ReissueTransaction',
|
|
50
|
+
'BurnTransaction', 'MassTransferTransaction', 'ExchangeTransaction',
|
|
51
|
+
'TransferTransaction', 'SetAssetScriptTransaction',
|
|
52
|
+
'InvokeScriptTransaction', 'IssueTransaction', 'LeaseTransaction',
|
|
53
|
+
'LeaseCancelTransaction', 'CreateAliasTransaction',
|
|
54
|
+
'SetScriptTransaction', 'SponsorFeeTransaction', 'DataTransaction',
|
|
55
|
+
'WriteSet', 'AttachedPayment', 'ScriptTransfer', 'TransferSet',
|
|
56
|
+
'ScriptResult', 'Invocation', 'Asset', 'BlockInfo', 'Issue', 'Reissue',
|
|
57
|
+
'Burn', 'NoAlg', 'Md5', 'Sha1', 'Sha224', 'Sha256', 'Sha384', 'Sha512',
|
|
58
|
+
'Sha3224', 'Sha3256', 'Sha3384', 'Sha3512', 'BinaryEntry',
|
|
59
|
+
'BooleanEntry', 'IntegerEntry', 'StringEntry', 'List', 'Ceiling',
|
|
60
|
+
'Down', 'Floor', 'HalfDown', 'HalfEven', 'HalfUp', 'Up',
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
functionsName = (
|
|
64
|
+
'fraction', 'size', 'toBytes', 'take', 'drop', 'takeRight', 'dropRight',
|
|
65
|
+
'toString', 'isDefined', 'extract', 'throw', 'getElement', 'value',
|
|
66
|
+
'cons', 'toUtf8String', 'toInt', 'indexOf', 'lastIndexOf', 'split',
|
|
67
|
+
'parseInt', 'parseIntValue', 'keccak256', 'blake2b256', 'sha256',
|
|
68
|
+
'sigVerify', 'toBase58String', 'fromBase58String', 'toBase64String',
|
|
69
|
+
'fromBase64String', 'transactionById', 'transactionHeightById',
|
|
70
|
+
'getInteger', 'getBoolean', 'getBinary', 'getString',
|
|
71
|
+
'addressFromPublicKey', 'addressFromString', 'addressFromRecipient',
|
|
72
|
+
'assetBalance', 'wavesBalance', 'getIntegerValue', 'getBooleanValue',
|
|
73
|
+
'getBinaryValue', 'getStringValue', 'addressFromStringValue',
|
|
74
|
+
'assetInfo', 'rsaVerify', 'checkMerkleProof', 'median',
|
|
75
|
+
'valueOrElse', 'valueOrErrorMessage', 'contains', 'log', 'pow',
|
|
76
|
+
'toBase16String', 'fromBase16String', 'blockInfoByHeight',
|
|
77
|
+
'transferTransactionById',
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
reservedWords = words((
|
|
81
|
+
'match', 'case', 'else', 'func', 'if',
|
|
82
|
+
'let', 'then', '@Callable', '@Verifier',
|
|
83
|
+
), suffix=r'\b')
|
|
84
|
+
|
|
85
|
+
tokens = {
|
|
86
|
+
'root': [
|
|
87
|
+
# Comments
|
|
88
|
+
(r'#.*', Comment.Single),
|
|
89
|
+
# Whitespace
|
|
90
|
+
(r'\s+', Text),
|
|
91
|
+
# Strings
|
|
92
|
+
(r'"', String, 'doublequote'),
|
|
93
|
+
(r'utf8\'', String, 'utf8quote'),
|
|
94
|
+
(r'base(58|64|16)\'', String, 'singlequote'),
|
|
95
|
+
# Keywords
|
|
96
|
+
(reservedWords, Keyword.Reserved),
|
|
97
|
+
(r'\{-#.*?#-\}', Keyword.Reserved),
|
|
98
|
+
(r'FOLD<\d+>', Keyword.Reserved),
|
|
99
|
+
# Types
|
|
100
|
+
(words(typesName), Keyword.Type),
|
|
101
|
+
# Main
|
|
102
|
+
# (specialName, Keyword.Reserved),
|
|
103
|
+
# Prefix Operators
|
|
104
|
+
(words(builtinOps, prefix=r'\(', suffix=r'\)'), Name.Function),
|
|
105
|
+
# Infix Operators
|
|
106
|
+
(words(builtinOps), Name.Function),
|
|
107
|
+
(words(globalVariablesName), Name.Function),
|
|
108
|
+
(words(functionsName), Name.Function),
|
|
109
|
+
# Numbers
|
|
110
|
+
include('numbers'),
|
|
111
|
+
# Variable Names
|
|
112
|
+
(validName, Name.Variable),
|
|
113
|
+
# Parens
|
|
114
|
+
(r'[,()\[\]{}]', Punctuation),
|
|
115
|
+
],
|
|
116
|
+
|
|
117
|
+
'doublequote': [
|
|
118
|
+
(r'\\u[0-9a-fA-F]{4}', String.Escape),
|
|
119
|
+
(r'\\[nrfvb\\"]', String.Escape),
|
|
120
|
+
(r'[^"]', String),
|
|
121
|
+
(r'"', String, '#pop'),
|
|
122
|
+
],
|
|
123
|
+
|
|
124
|
+
'utf8quote': [
|
|
125
|
+
(r'\\u[0-9a-fA-F]{4}', String.Escape),
|
|
126
|
+
(r'\\[nrfvb\\\']', String.Escape),
|
|
127
|
+
(r'[^\']', String),
|
|
128
|
+
(r'\'', String, '#pop'),
|
|
129
|
+
],
|
|
130
|
+
|
|
131
|
+
'singlequote': [
|
|
132
|
+
(r'[^\']', String),
|
|
133
|
+
(r'\'', String, '#pop'),
|
|
134
|
+
],
|
|
135
|
+
|
|
136
|
+
'numbers': [
|
|
137
|
+
(r'_?\d+', Number.Integer),
|
|
138
|
+
],
|
|
139
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexer for Robot Framework.
|
|
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
|
|
|
@@ -27,7 +27,6 @@ import re
|
|
|
27
27
|
|
|
28
28
|
from pygments.lexer import Lexer
|
|
29
29
|
from pygments.token import Token
|
|
30
|
-
from pygments.util import text_type
|
|
31
30
|
|
|
32
31
|
__all__ = ['RobotFrameworkLexer']
|
|
33
32
|
|
|
@@ -64,7 +63,7 @@ class RobotFrameworkLexer(Lexer):
|
|
|
64
63
|
"""
|
|
65
64
|
name = 'RobotFramework'
|
|
66
65
|
aliases = ['robotframework']
|
|
67
|
-
filenames = ['*.
|
|
66
|
+
filenames = ['*.robot']
|
|
68
67
|
mimetypes = ['text/x-robotframework']
|
|
69
68
|
|
|
70
69
|
def __init__(self, **options):
|
|
@@ -80,11 +79,11 @@ class RobotFrameworkLexer(Lexer):
|
|
|
80
79
|
for value, token in row_tokenizer.tokenize(row):
|
|
81
80
|
for value, token in var_tokenizer.tokenize(value, token):
|
|
82
81
|
if value:
|
|
83
|
-
yield index, token,
|
|
82
|
+
yield index, token, str(value)
|
|
84
83
|
index += len(value)
|
|
85
84
|
|
|
86
85
|
|
|
87
|
-
class VariableTokenizer
|
|
86
|
+
class VariableTokenizer:
|
|
88
87
|
|
|
89
88
|
def tokenize(self, string, token):
|
|
90
89
|
var = VariableSplitter(string, identifiers='$@%&')
|
|
@@ -99,19 +98,16 @@ class VariableTokenizer(object):
|
|
|
99
98
|
before = string[:var.start]
|
|
100
99
|
yield before, orig_token
|
|
101
100
|
yield var.identifier + '{', SYNTAX
|
|
102
|
-
|
|
103
|
-
yield value, token
|
|
101
|
+
yield from self.tokenize(var.base, VARIABLE)
|
|
104
102
|
yield '}', SYNTAX
|
|
105
103
|
if var.index:
|
|
106
104
|
yield '[', SYNTAX
|
|
107
|
-
|
|
108
|
-
yield value, token
|
|
105
|
+
yield from self.tokenize(var.index, VARIABLE)
|
|
109
106
|
yield ']', SYNTAX
|
|
110
|
-
|
|
111
|
-
yield value, token
|
|
107
|
+
yield from self.tokenize(string[var.end:], orig_token)
|
|
112
108
|
|
|
113
109
|
|
|
114
|
-
class RowTokenizer
|
|
110
|
+
class RowTokenizer:
|
|
115
111
|
|
|
116
112
|
def __init__(self):
|
|
117
113
|
self._table = UnknownTable()
|
|
@@ -124,6 +120,7 @@ class RowTokenizer(object):
|
|
|
124
120
|
'metadata': settings,
|
|
125
121
|
'variables': variables, 'variable': variables,
|
|
126
122
|
'testcases': testcases, 'testcase': testcases,
|
|
123
|
+
'tasks': testcases, 'task': testcases,
|
|
127
124
|
'keywords': keywords, 'keyword': keywords,
|
|
128
125
|
'userkeywords': keywords, 'userkeyword': keywords}
|
|
129
126
|
|
|
@@ -138,9 +135,8 @@ class RowTokenizer(object):
|
|
|
138
135
|
elif index == 0 and value.startswith('*'):
|
|
139
136
|
self._table = self._start_table(value)
|
|
140
137
|
heading = True
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
yield value, token
|
|
138
|
+
yield from self._tokenize(value, index, commented,
|
|
139
|
+
separator, heading)
|
|
144
140
|
self._table.end_row()
|
|
145
141
|
|
|
146
142
|
def _start_table(self, header):
|
|
@@ -155,25 +151,22 @@ class RowTokenizer(object):
|
|
|
155
151
|
elif heading:
|
|
156
152
|
yield value, HEADING
|
|
157
153
|
else:
|
|
158
|
-
|
|
159
|
-
yield value, token
|
|
154
|
+
yield from self._table.tokenize(value, index)
|
|
160
155
|
|
|
161
156
|
|
|
162
|
-
class RowSplitter
|
|
157
|
+
class RowSplitter:
|
|
163
158
|
_space_splitter = re.compile('( {2,})')
|
|
164
|
-
_pipe_splitter = re.compile('((?:^| +)\|(?: +|$))')
|
|
159
|
+
_pipe_splitter = re.compile(r'((?:^| +)\|(?: +|$))')
|
|
165
160
|
|
|
166
161
|
def split(self, row):
|
|
167
162
|
splitter = (row.startswith('| ') and self._split_from_pipes
|
|
168
163
|
or self._split_from_spaces)
|
|
169
|
-
|
|
170
|
-
yield value
|
|
164
|
+
yield from splitter(row)
|
|
171
165
|
yield '\n'
|
|
172
166
|
|
|
173
167
|
def _split_from_spaces(self, row):
|
|
174
168
|
yield '' # Start with (pseudo)separator similarly as with pipes
|
|
175
|
-
|
|
176
|
-
yield value
|
|
169
|
+
yield from self._space_splitter.split(row)
|
|
177
170
|
|
|
178
171
|
def _split_from_pipes(self, row):
|
|
179
172
|
_, separator, rest = self._pipe_splitter.split(row, 1)
|
|
@@ -185,7 +178,7 @@ class RowSplitter(object):
|
|
|
185
178
|
yield rest
|
|
186
179
|
|
|
187
180
|
|
|
188
|
-
class Tokenizer
|
|
181
|
+
class Tokenizer:
|
|
189
182
|
_tokens = None
|
|
190
183
|
|
|
191
184
|
def __init__(self):
|
|
@@ -216,11 +209,11 @@ class Comment(Tokenizer):
|
|
|
216
209
|
class Setting(Tokenizer):
|
|
217
210
|
_tokens = (SETTING, ARGUMENT)
|
|
218
211
|
_keyword_settings = ('suitesetup', 'suiteprecondition', 'suiteteardown',
|
|
219
|
-
'suitepostcondition', 'testsetup', 'testprecondition',
|
|
220
|
-
'testteardown', 'testpostcondition', 'testtemplate')
|
|
212
|
+
'suitepostcondition', 'testsetup', 'tasksetup', 'testprecondition',
|
|
213
|
+
'testteardown','taskteardown', 'testpostcondition', 'testtemplate', 'tasktemplate')
|
|
221
214
|
_import_settings = ('library', 'resource', 'variables')
|
|
222
215
|
_other_settings = ('documentation', 'metadata', 'forcetags', 'defaulttags',
|
|
223
|
-
'testtimeout')
|
|
216
|
+
'testtimeout','tasktimeout')
|
|
224
217
|
_custom_tokenizer = None
|
|
225
218
|
|
|
226
219
|
def __init__(self, template_setter=None):
|
|
@@ -292,7 +285,7 @@ class KeywordCall(Tokenizer):
|
|
|
292
285
|
return GherkinTokenizer().tokenize(value, KEYWORD)
|
|
293
286
|
|
|
294
287
|
|
|
295
|
-
class GherkinTokenizer
|
|
288
|
+
class GherkinTokenizer:
|
|
296
289
|
_gherkin_prefix = re.compile('^(Given|When|Then|And) ', re.IGNORECASE)
|
|
297
290
|
|
|
298
291
|
def tokenize(self, value, token):
|
|
@@ -320,7 +313,7 @@ class ForLoop(Tokenizer):
|
|
|
320
313
|
return token
|
|
321
314
|
|
|
322
315
|
|
|
323
|
-
class _Table
|
|
316
|
+
class _Table:
|
|
324
317
|
_tokenizer_class = None
|
|
325
318
|
|
|
326
319
|
def __init__(self, prev_tokenizer=None):
|
|
@@ -333,8 +326,7 @@ class _Table(object):
|
|
|
333
326
|
self._tokenizer = self._prev_tokenizer
|
|
334
327
|
yield value, SYNTAX
|
|
335
328
|
else:
|
|
336
|
-
|
|
337
|
-
yield value_and_token
|
|
329
|
+
yield from self._tokenize(value, index)
|
|
338
330
|
self._prev_values_on_row.append(value)
|
|
339
331
|
|
|
340
332
|
def _continues(self, value, index):
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Lexers for Ruby and related 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
|
|
|
@@ -43,23 +43,22 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
43
43
|
|
|
44
44
|
def heredoc_callback(self, match, ctx):
|
|
45
45
|
# okay, this is the hardest part of parsing Ruby...
|
|
46
|
-
# match: 1 =
|
|
46
|
+
# match: 1 = <<[-~]?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
|
|
47
47
|
|
|
48
48
|
start = match.start(1)
|
|
49
|
-
yield start, Operator, match.group(1) #
|
|
49
|
+
yield start, Operator, match.group(1) # <<[-~]?
|
|
50
50
|
yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
|
|
51
51
|
yield match.start(3), String.Delimiter, match.group(3) # heredoc name
|
|
52
52
|
yield match.start(4), String.Heredoc, match.group(4) # quote again
|
|
53
53
|
|
|
54
54
|
heredocstack = ctx.__dict__.setdefault('heredocstack', [])
|
|
55
55
|
outermost = not bool(heredocstack)
|
|
56
|
-
heredocstack.append((match.group(1)
|
|
56
|
+
heredocstack.append((match.group(1) in ('<<-', '<<~'), match.group(3)))
|
|
57
57
|
|
|
58
58
|
ctx.pos = match.start(5)
|
|
59
59
|
ctx.end = match.end(5)
|
|
60
60
|
# this may find other heredocs
|
|
61
|
-
|
|
62
|
-
yield i, t, v
|
|
61
|
+
yield from self.get_tokens_unprocessed(context=ctx)
|
|
63
62
|
ctx.pos = match.end()
|
|
64
63
|
|
|
65
64
|
if outermost:
|
|
@@ -109,16 +108,17 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
109
108
|
(r'\:@{0,2}[a-zA-Z_]\w*[!?]?', String.Symbol),
|
|
110
109
|
(words(RUBY_OPERATORS, prefix=r'\:@{0,2}'), String.Symbol),
|
|
111
110
|
(r":'(\\\\|\\'|[^'])*'", String.Symbol),
|
|
112
|
-
(r"'(\\\\|\\'|[^'])*'", String.Single),
|
|
113
111
|
(r':"', String.Symbol, 'simple-sym'),
|
|
114
112
|
(r'([a-zA-Z_]\w*)(:)(?!:)',
|
|
115
113
|
bygroups(String.Symbol, Punctuation)), # Since Ruby 1.9
|
|
116
|
-
(r'"', String.Double, 'simple-string'),
|
|
114
|
+
(r'"', String.Double, 'simple-string-double'),
|
|
115
|
+
(r"'", String.Single, 'simple-string-single'),
|
|
117
116
|
(r'(?<!\.)`', String.Backtick, 'simple-backtick'),
|
|
118
117
|
]
|
|
119
118
|
|
|
120
|
-
#
|
|
121
|
-
for name, ttype, end in ('string', String.Double, '"'), \
|
|
119
|
+
# quoted string and symbol
|
|
120
|
+
for name, ttype, end in ('string-double', String.Double, '"'), \
|
|
121
|
+
('string-single', String.Single, "'"),\
|
|
122
122
|
('sym', String.Symbol, '"'), \
|
|
123
123
|
('backtick', String.Backtick, '`'):
|
|
124
124
|
states['simple-'+name] = [
|
|
@@ -247,10 +247,10 @@ class RubyLexer(ExtendedRegexLexer):
|
|
|
247
247
|
Name.Builtin),
|
|
248
248
|
(r'__(FILE|LINE)__\b', Name.Builtin.Pseudo),
|
|
249
249
|
# normal heredocs
|
|
250
|
-
(r'(?<!\w)(
|
|
250
|
+
(r'(?<!\w)(<<[-~]?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
|
|
251
251
|
heredoc_callback),
|
|
252
252
|
# empty string heredocs
|
|
253
|
-
(r'(
|
|
253
|
+
(r'(<<[-~]?)("|\')()(\2)(.*?\n)', heredoc_callback),
|
|
254
254
|
(r'__END__', Comment.Preproc, 'end-part'),
|
|
255
255
|
# multiline regex (after keywords or assignments)
|
|
256
256
|
(r'(?:^|(?<=[=<>~!:])|'
|
|
@@ -403,8 +403,8 @@ class RubyConsoleLexer(Lexer):
|
|
|
403
403
|
aliases = ['rbcon', 'irb']
|
|
404
404
|
mimetypes = ['text/x-ruby-shellsession']
|
|
405
405
|
|
|
406
|
-
_prompt_re = re.compile('irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
|
|
407
|
-
'|>> |\?> ')
|
|
406
|
+
_prompt_re = re.compile(r'irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
|
|
407
|
+
r'|>> |\?> ')
|
|
408
408
|
|
|
409
409
|
def get_tokens_unprocessed(self, text):
|
|
410
410
|
rblexer = RubyLexer(**self.options)
|
|
@@ -421,16 +421,14 @@ class RubyConsoleLexer(Lexer):
|
|
|
421
421
|
curcode += line[end:]
|
|
422
422
|
else:
|
|
423
423
|
if curcode:
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
yield item
|
|
424
|
+
yield from do_insertions(
|
|
425
|
+
insertions, rblexer.get_tokens_unprocessed(curcode))
|
|
427
426
|
curcode = ''
|
|
428
427
|
insertions = []
|
|
429
428
|
yield match.start(), Generic.Output, line
|
|
430
429
|
if curcode:
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
yield item
|
|
430
|
+
yield from do_insertions(
|
|
431
|
+
insertions, rblexer.get_tokens_unprocessed(curcode))
|
|
434
432
|
|
|
435
433
|
|
|
436
434
|
class FancyLexer(RegexLexer):
|
|
@@ -498,11 +496,11 @@ class FancyLexer(RegexLexer):
|
|
|
498
496
|
(r'[a-zA-Z](\w|[-+?!=*/^><%])*:', Name.Function),
|
|
499
497
|
# operators, must be below functions
|
|
500
498
|
(r'[-+*/~,<>=&!?%^\[\].$]+', Operator),
|
|
501
|
-
('[A-Z]\w*', Name.Constant),
|
|
502
|
-
('@[a-zA-Z_]\w*', Name.Variable.Instance),
|
|
503
|
-
('@@[a-zA-Z_]\w*', Name.Variable.Class),
|
|
499
|
+
(r'[A-Z]\w*', Name.Constant),
|
|
500
|
+
(r'@[a-zA-Z_]\w*', Name.Variable.Instance),
|
|
501
|
+
(r'@@[a-zA-Z_]\w*', Name.Variable.Class),
|
|
504
502
|
('@@?', Operator),
|
|
505
|
-
('[a-zA-Z_]\w*', Name),
|
|
503
|
+
(r'[a-zA-Z_]\w*', Name),
|
|
506
504
|
# numbers - / checks are necessary to avoid mismarking regexes,
|
|
507
505
|
# see comment in RubyLexer
|
|
508
506
|
(r'(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?',
|