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