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,20 +1,19 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.csound
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
|
-
Lexers for
|
|
5
|
+
Lexers for Csound 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
|
|
|
12
11
|
import re
|
|
13
12
|
|
|
14
13
|
from pygments.lexer import RegexLexer, bygroups, default, include, using, words
|
|
15
|
-
from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, \
|
|
16
|
-
String, Text
|
|
17
|
-
from pygments.lexers._csound_builtins import OPCODES
|
|
14
|
+
from pygments.token import Comment, Error, Keyword, Name, Number, Operator, Punctuation, \
|
|
15
|
+
String, Text, Whitespace
|
|
16
|
+
from pygments.lexers._csound_builtins import OPCODES, DEPRECATED_OPCODES
|
|
18
17
|
from pygments.lexers.html import HtmlLexer
|
|
19
18
|
from pygments.lexers.python import PythonLexer
|
|
20
19
|
from pygments.lexers.scripting import LuaLexer
|
|
@@ -25,74 +24,116 @@ newline = (r'((?:(?:;|//).*)*)(\n)', bygroups(Comment.Single, Text))
|
|
|
25
24
|
|
|
26
25
|
|
|
27
26
|
class CsoundLexer(RegexLexer):
|
|
28
|
-
# Subclasses must define a 'single-line string' state.
|
|
29
27
|
tokens = {
|
|
30
28
|
'whitespace': [
|
|
31
29
|
(r'[ \t]+', Text),
|
|
32
|
-
(r'
|
|
33
|
-
(r'
|
|
30
|
+
(r'/[*](?:.|\n)*?[*]/', Comment.Multiline),
|
|
31
|
+
(r'(?:;|//).*$', Comment.Single),
|
|
32
|
+
(r'(\\)(\n)', bygroups(Whitespace, Text))
|
|
34
33
|
],
|
|
35
34
|
|
|
36
|
-
'
|
|
37
|
-
(r'(
|
|
38
|
-
|
|
39
|
-
(r'
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(r"((?:\\['\)]|[^'\)])+)(')", bygroups(Comment.Preproc, Punctuation)),
|
|
43
|
-
(r"([^'\)]+)(\))", bygroups(Comment.Preproc, Punctuation), '#pop')
|
|
35
|
+
'preprocessor directives': [
|
|
36
|
+
(r'#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+', Comment.Preproc),
|
|
37
|
+
(r'#includestr', Comment.Preproc, 'includestr directive'),
|
|
38
|
+
(r'#include', Comment.Preproc, 'include directive'),
|
|
39
|
+
(r'#[ \t]*define', Comment.Preproc, 'define directive'),
|
|
40
|
+
(r'#(?:ifn?def|undef)\b', Comment.Preproc, 'macro directive')
|
|
44
41
|
],
|
|
45
42
|
|
|
46
|
-
'
|
|
43
|
+
'include directive': [
|
|
47
44
|
include('whitespace'),
|
|
48
|
-
|
|
45
|
+
(r'([^ \t]).*?\1', String, '#pop')
|
|
49
46
|
],
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
(r'
|
|
53
|
-
(r'#include\b', Comment.Preproc, 'include'),
|
|
54
|
-
(r'#[ \t]*define\b', Comment.Preproc, 'macro name'),
|
|
55
|
-
(r'@+[ \t]*\d*', Comment.Preproc)
|
|
47
|
+
'includestr directive': [
|
|
48
|
+
include('whitespace'),
|
|
49
|
+
(r'"', String, ('#pop', 'quoted string'))
|
|
56
50
|
],
|
|
57
51
|
|
|
58
|
-
'
|
|
52
|
+
'define directive': [
|
|
53
|
+
(r'\n', Text),
|
|
59
54
|
include('whitespace'),
|
|
60
|
-
(r'
|
|
55
|
+
(r'([A-Z_a-z]\w*)(\()', bygroups(Comment.Preproc, Punctuation),
|
|
56
|
+
('#pop', 'macro parameter name list')),
|
|
57
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, ('#pop', 'before macro body'))
|
|
61
58
|
],
|
|
62
|
-
|
|
63
|
-
'macro name': [
|
|
59
|
+
'macro parameter name list': [
|
|
64
60
|
include('whitespace'),
|
|
65
|
-
(r'
|
|
66
|
-
|
|
67
|
-
(r'\
|
|
61
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc),
|
|
62
|
+
(r"['#]", Punctuation),
|
|
63
|
+
(r'\)', Punctuation, ('#pop', 'before macro body'))
|
|
68
64
|
],
|
|
69
|
-
'
|
|
65
|
+
'before macro body': [
|
|
66
|
+
(r'\n', Text),
|
|
70
67
|
include('whitespace'),
|
|
71
|
-
(r'#', Punctuation, '
|
|
68
|
+
(r'#', Punctuation, ('#pop', 'macro body'))
|
|
72
69
|
],
|
|
73
|
-
'
|
|
74
|
-
(r'(
|
|
75
|
-
(r'
|
|
70
|
+
'macro body': [
|
|
71
|
+
(r'(?:\\(?!#)|[^#\\]|\n)+', Comment.Preproc),
|
|
72
|
+
(r'\\#', Comment.Preproc),
|
|
73
|
+
(r'(?<!\\)#', Punctuation, '#pop')
|
|
76
74
|
],
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
(
|
|
80
|
-
|
|
75
|
+
|
|
76
|
+
'macro directive': [
|
|
77
|
+
include('whitespace'),
|
|
78
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, '#pop')
|
|
81
79
|
],
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
(r'
|
|
80
|
+
|
|
81
|
+
'macro uses': [
|
|
82
|
+
(r'(\$[A-Z_a-z]\w*\.?)(\()', bygroups(Comment.Preproc, Punctuation),
|
|
83
|
+
'macro parameter value list'),
|
|
84
|
+
(r'\$[A-Z_a-z]\w*(?:\.|\b)', Comment.Preproc)
|
|
85
|
+
],
|
|
86
|
+
'macro parameter value list': [
|
|
87
|
+
(r'(?:[^\'#"{()]|\{(?!\{))+', Comment.Preproc),
|
|
88
|
+
(r"['#]", Punctuation),
|
|
89
|
+
(r'"', String, 'macro parameter value quoted string'),
|
|
90
|
+
(r'\{\{', String, 'macro parameter value braced string'),
|
|
91
|
+
(r'\(', Comment.Preproc, 'macro parameter value parenthetical'),
|
|
92
|
+
(r'\)', Punctuation, '#pop')
|
|
93
|
+
],
|
|
94
|
+
'macro parameter value quoted string': [
|
|
95
|
+
(r"\\[#'()]", Comment.Preproc),
|
|
96
|
+
(r"[#'()]", Error),
|
|
97
|
+
include('quoted string')
|
|
98
|
+
],
|
|
99
|
+
'macro parameter value braced string': [
|
|
100
|
+
(r"\\[#'()]", Comment.Preproc),
|
|
101
|
+
(r"[#'()]", Error),
|
|
102
|
+
include('braced string')
|
|
103
|
+
],
|
|
104
|
+
'macro parameter value parenthetical': [
|
|
105
|
+
(r'(?:[^\\()]|\\\))+', Comment.Preproc),
|
|
106
|
+
(r'\(', Comment.Preproc, '#push'),
|
|
107
|
+
(r'\)', Comment.Preproc, '#pop')
|
|
108
|
+
],
|
|
109
|
+
|
|
110
|
+
'whitespace and macro uses': [
|
|
111
|
+
include('whitespace'),
|
|
112
|
+
include('macro uses')
|
|
113
|
+
],
|
|
114
|
+
|
|
115
|
+
'numbers': [
|
|
116
|
+
(r'\d+[Ee][+-]?\d+|(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?', Number.Float),
|
|
117
|
+
(r'(0[Xx])([0-9A-Fa-f]+)', bygroups(Keyword.Type, Number.Hex)),
|
|
118
|
+
(r'\d+', Number.Integer)
|
|
85
119
|
],
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
(r'
|
|
120
|
+
|
|
121
|
+
'quoted string': [
|
|
122
|
+
(r'"', String, '#pop'),
|
|
123
|
+
(r'[^"$]+', String),
|
|
124
|
+
include('macro uses'),
|
|
125
|
+
(r'[$]', String)
|
|
126
|
+
],
|
|
127
|
+
|
|
128
|
+
'braced string': [
|
|
129
|
+
# Do nothing. This must be defined in subclasses.
|
|
89
130
|
]
|
|
90
131
|
}
|
|
91
132
|
|
|
92
133
|
|
|
93
134
|
class CsoundScoreLexer(CsoundLexer):
|
|
94
135
|
"""
|
|
95
|
-
For `Csound <
|
|
136
|
+
For `Csound <https://csound.com>`_ scores.
|
|
96
137
|
|
|
97
138
|
.. versionadded:: 2.1
|
|
98
139
|
"""
|
|
@@ -102,47 +143,70 @@ class CsoundScoreLexer(CsoundLexer):
|
|
|
102
143
|
filenames = ['*.sco']
|
|
103
144
|
|
|
104
145
|
tokens = {
|
|
105
|
-
'
|
|
146
|
+
'root': [
|
|
147
|
+
(r'\n', Text),
|
|
148
|
+
include('whitespace and macro uses'),
|
|
106
149
|
include('preprocessor directives'),
|
|
107
|
-
|
|
108
|
-
(r'
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
(r'
|
|
113
|
-
|
|
150
|
+
|
|
151
|
+
(r'[aBbCdefiqstvxy]', Keyword),
|
|
152
|
+
# There is also a w statement that is generated internally and should not be
|
|
153
|
+
# used; see https://github.com/csound/csound/issues/750.
|
|
154
|
+
|
|
155
|
+
(r'z', Keyword.Constant),
|
|
156
|
+
# z is a constant equal to 800,000,000,000. 800 billion seconds is about
|
|
157
|
+
# 25,367.8 years. See also
|
|
158
|
+
# https://csound.com/docs/manual/ScoreTop.html and
|
|
159
|
+
# https://github.com/csound/csound/search?q=stof+path%3AEngine+filename%3Asread.c.
|
|
160
|
+
|
|
161
|
+
(r'([nNpP][pP])(\d+)', bygroups(Keyword, Number.Integer)),
|
|
162
|
+
|
|
163
|
+
(r'[mn]', Keyword, 'mark statement'),
|
|
164
|
+
|
|
165
|
+
include('numbers'),
|
|
166
|
+
(r'[!+\-*/^%&|<>#~.]', Operator),
|
|
167
|
+
(r'[()\[\]]', Punctuation),
|
|
168
|
+
(r'"', String, 'quoted string'),
|
|
169
|
+
(r'\{', Comment.Preproc, 'loop after left brace'),
|
|
114
170
|
],
|
|
115
171
|
|
|
116
|
-
'statement': [
|
|
117
|
-
include('whitespace
|
|
118
|
-
|
|
119
|
-
|
|
172
|
+
'mark statement': [
|
|
173
|
+
include('whitespace and macro uses'),
|
|
174
|
+
(r'[A-Z_a-z]\w*', Name.Label),
|
|
175
|
+
(r'\n', Text, '#pop')
|
|
120
176
|
],
|
|
121
177
|
|
|
122
|
-
'
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
178
|
+
'loop after left brace': [
|
|
179
|
+
include('whitespace and macro uses'),
|
|
180
|
+
(r'\d+', Number.Integer, ('#pop', 'loop after repeat count')),
|
|
181
|
+
],
|
|
182
|
+
'loop after repeat count': [
|
|
183
|
+
include('whitespace and macro uses'),
|
|
184
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, ('#pop', 'loop'))
|
|
185
|
+
],
|
|
186
|
+
'loop': [
|
|
187
|
+
(r'\}', Comment.Preproc, '#pop'),
|
|
188
|
+
include('root')
|
|
127
189
|
],
|
|
128
190
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
191
|
+
# Braced strings are not allowed in Csound scores, but this is needed because the
|
|
192
|
+
# superclass includes it.
|
|
193
|
+
'braced string': [
|
|
194
|
+
(r'\}\}', String, '#pop'),
|
|
195
|
+
(r'[^}]|\}(?!\})', String)
|
|
132
196
|
]
|
|
133
197
|
}
|
|
134
198
|
|
|
135
199
|
|
|
136
200
|
class CsoundOrchestraLexer(CsoundLexer):
|
|
137
201
|
"""
|
|
138
|
-
For `Csound <
|
|
202
|
+
For `Csound <https://csound.com>`_ orchestras.
|
|
139
203
|
|
|
140
204
|
.. versionadded:: 2.1
|
|
141
205
|
"""
|
|
142
206
|
|
|
143
207
|
name = 'Csound Orchestra'
|
|
144
208
|
aliases = ['csound', 'csound-orc']
|
|
145
|
-
filenames = ['*.orc']
|
|
209
|
+
filenames = ['*.orc', '*.udo']
|
|
146
210
|
|
|
147
211
|
user_defined_opcodes = set()
|
|
148
212
|
|
|
@@ -152,159 +216,191 @@ class CsoundOrchestraLexer(CsoundLexer):
|
|
|
152
216
|
yield match.start(), Name.Function, opcode
|
|
153
217
|
|
|
154
218
|
def name_callback(lexer, match):
|
|
155
|
-
|
|
156
|
-
|
|
219
|
+
type_annotation_token = Keyword.Type
|
|
220
|
+
|
|
221
|
+
name = match.group(1)
|
|
222
|
+
if name in OPCODES or name in DEPRECATED_OPCODES:
|
|
157
223
|
yield match.start(), Name.Builtin, name
|
|
158
224
|
elif name in lexer.user_defined_opcodes:
|
|
159
225
|
yield match.start(), Name.Function, name
|
|
160
226
|
else:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
yield
|
|
227
|
+
type_annotation_token = Name
|
|
228
|
+
name_match = re.search(r'^(g?[afikSw])(\w+)', name)
|
|
229
|
+
if name_match:
|
|
230
|
+
yield name_match.start(1), Keyword.Type, name_match.group(1)
|
|
231
|
+
yield name_match.start(2), Name, name_match.group(2)
|
|
165
232
|
else:
|
|
166
233
|
yield match.start(), Name, name
|
|
167
234
|
|
|
235
|
+
if match.group(2):
|
|
236
|
+
yield match.start(2), Punctuation, match.group(2)
|
|
237
|
+
yield match.start(3), type_annotation_token, match.group(3)
|
|
238
|
+
|
|
168
239
|
tokens = {
|
|
169
|
-
'
|
|
170
|
-
(r'\
|
|
171
|
-
|
|
240
|
+
'root': [
|
|
241
|
+
(r'\n', Text),
|
|
242
|
+
|
|
243
|
+
(r'^([ \t]*)(\w+)(:)([ \t]+|$)', bygroups(Text, Name.Label, Punctuation, Text)),
|
|
172
244
|
|
|
173
|
-
|
|
245
|
+
include('whitespace and macro uses'),
|
|
174
246
|
include('preprocessor directives'),
|
|
175
|
-
|
|
176
|
-
(r'\
|
|
177
|
-
(r'
|
|
178
|
-
(r'\
|
|
179
|
-
|
|
180
|
-
(
|
|
181
|
-
|
|
182
|
-
|
|
247
|
+
|
|
248
|
+
(r'\binstr\b', Keyword.Declaration, 'instrument numbers and identifiers'),
|
|
249
|
+
(r'\bopcode\b', Keyword.Declaration, 'after opcode keyword'),
|
|
250
|
+
(r'\b(?:end(?:in|op))\b', Keyword.Declaration),
|
|
251
|
+
|
|
252
|
+
include('partial statements')
|
|
253
|
+
],
|
|
254
|
+
|
|
255
|
+
'partial statements': [
|
|
256
|
+
(r'\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\b', Name.Variable.Global),
|
|
257
|
+
|
|
258
|
+
include('numbers'),
|
|
259
|
+
|
|
260
|
+
(r'\+=|-=|\*=|/=|<<|>>|<=|>=|==|!=|&&|\|\||[~¬]|[=!+\-*/^%&|<>#?:]', Operator),
|
|
261
|
+
(r'[(),\[\]]', Punctuation),
|
|
262
|
+
|
|
263
|
+
(r'"', String, 'quoted string'),
|
|
264
|
+
(r'\{\{', String, 'braced string'),
|
|
265
|
+
|
|
183
266
|
(words((
|
|
184
|
-
# Keywords
|
|
185
267
|
'do', 'else', 'elseif', 'endif', 'enduntil', 'fi', 'if', 'ithen', 'kthen',
|
|
186
268
|
'od', 'then', 'until', 'while',
|
|
187
|
-
# Opcodes that act as control structures
|
|
188
|
-
'return', 'timout'
|
|
189
269
|
), prefix=r'\b', suffix=r'\b'), Keyword),
|
|
190
|
-
(words(('
|
|
191
|
-
prefix=r'\b', suffix=r'\b'), Keyword, 'goto label'),
|
|
192
|
-
(words(('cggoto', 'cigoto', 'cingoto', 'ckgoto', 'cngoto'),
|
|
193
|
-
prefix=r'\b', suffix=r'\b'), Keyword,
|
|
194
|
-
('goto label', 'goto expression')),
|
|
195
|
-
(words(('loop_ge', 'loop_gt', 'loop_le', 'loop_lt'),
|
|
196
|
-
prefix=r'\b', suffix=r'\b'), Keyword,
|
|
197
|
-
('goto label', 'goto expression', 'goto expression', 'goto expression')),
|
|
198
|
-
(r'\bscoreline(_i)?\b', Name.Builtin, 'scoreline opcode'),
|
|
199
|
-
(r'\bpyl?run[it]?\b', Name.Builtin, 'python opcode'),
|
|
200
|
-
(r'\blua_(exec|opdef)\b', Name.Builtin, 'lua opcode'),
|
|
201
|
-
(r'\b[a-zA-Z_]\w*\b', name_callback)
|
|
202
|
-
],
|
|
203
|
-
|
|
204
|
-
'expression': [
|
|
205
|
-
include('whitespace or macro call'),
|
|
206
|
-
newline + ('#pop',),
|
|
207
|
-
include('partial expression')
|
|
208
|
-
],
|
|
270
|
+
(words(('return', 'rireturn'), prefix=r'\b', suffix=r'\b'), Keyword.Pseudo),
|
|
209
271
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
(r'\
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
(r'\
|
|
223
|
-
(r'
|
|
224
|
-
|
|
272
|
+
(r'\b[ik]?goto\b', Keyword, 'goto label'),
|
|
273
|
+
(r'\b(r(?:einit|igoto)|tigoto)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
274
|
+
'goto label'),
|
|
275
|
+
(r'\b(c(?:g|in?|k|nk?)goto)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
276
|
+
('goto label', 'goto argument')),
|
|
277
|
+
(r'\b(timout)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
278
|
+
('goto label', 'goto argument', 'goto argument')),
|
|
279
|
+
(r'\b(loop_[gl][et])(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
280
|
+
('goto label', 'goto argument', 'goto argument', 'goto argument')),
|
|
281
|
+
|
|
282
|
+
(r'\bprintk?s\b', Name.Builtin, 'prints opcode'),
|
|
283
|
+
(r'\b(?:readscore|scoreline(?:_i)?)\b', Name.Builtin, 'Csound score opcode'),
|
|
284
|
+
(r'\bpyl?run[it]?\b', Name.Builtin, 'Python opcode'),
|
|
285
|
+
(r'\blua_(?:exec|opdef)\b', Name.Builtin, 'Lua opcode'),
|
|
286
|
+
(r'\bp\d+\b', Name.Variable.Instance),
|
|
287
|
+
(r'\b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\b', name_callback)
|
|
225
288
|
],
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
include('whitespace
|
|
229
|
-
(r'\
|
|
230
|
-
|
|
231
|
-
|
|
289
|
+
|
|
290
|
+
'instrument numbers and identifiers': [
|
|
291
|
+
include('whitespace and macro uses'),
|
|
292
|
+
(r'\d+|[A-Z_a-z]\w*', Name.Function),
|
|
293
|
+
(r'[+,]', Punctuation),
|
|
294
|
+
(r'\n', Text, '#pop')
|
|
232
295
|
],
|
|
233
296
|
|
|
234
|
-
'opcode
|
|
235
|
-
include('whitespace
|
|
236
|
-
(r'[
|
|
297
|
+
'after opcode keyword': [
|
|
298
|
+
include('whitespace and macro uses'),
|
|
299
|
+
(r'[A-Z_a-z]\w*', opcode_name_callback, ('#pop', 'opcode type signatures')),
|
|
300
|
+
(r'\n', Text, '#pop')
|
|
237
301
|
],
|
|
238
|
-
'opcode
|
|
239
|
-
include('whitespace
|
|
240
|
-
|
|
241
|
-
|
|
302
|
+
'opcode type signatures': [
|
|
303
|
+
include('whitespace and macro uses'),
|
|
304
|
+
|
|
305
|
+
# https://github.com/csound/csound/search?q=XIDENT+path%3AEngine+filename%3Acsound_orc.lex
|
|
306
|
+
(r'0|[afijkKoOpPStV\[\]]+', Keyword.Type),
|
|
307
|
+
|
|
308
|
+
(r',', Punctuation),
|
|
309
|
+
(r'\n', Text, '#pop')
|
|
242
310
|
],
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
311
|
+
|
|
312
|
+
'quoted string': [
|
|
313
|
+
(r'"', String, '#pop'),
|
|
314
|
+
(r'[^\\"$%)]+', String),
|
|
315
|
+
include('macro uses'),
|
|
316
|
+
include('escape sequences'),
|
|
317
|
+
include('format specifiers'),
|
|
318
|
+
(r'[\\$%)]', String)
|
|
246
319
|
],
|
|
247
|
-
'
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
(
|
|
251
|
-
include('
|
|
252
|
-
|
|
320
|
+
'braced string': [
|
|
321
|
+
(r'\}\}', String, '#pop'),
|
|
322
|
+
(r'(?:[^\\%)}]|\}(?!\}))+', String),
|
|
323
|
+
include('escape sequences'),
|
|
324
|
+
include('format specifiers'),
|
|
325
|
+
(r'[\\%)]', String)
|
|
326
|
+
],
|
|
327
|
+
'escape sequences': [
|
|
328
|
+
# https://github.com/csound/csound/search?q=unquote_string+path%3AEngine+filename%3Acsound_orc_compile.c
|
|
329
|
+
(r'\\(?:[\\abnrt"]|[0-7]{1,3})', String.Escape)
|
|
330
|
+
],
|
|
331
|
+
# Format specifiers are highlighted in all strings, even though only
|
|
332
|
+
# fprintks https://csound.com/docs/manual/fprintks.html
|
|
333
|
+
# fprints https://csound.com/docs/manual/fprints.html
|
|
334
|
+
# printf/printf_i https://csound.com/docs/manual/printf.html
|
|
335
|
+
# printks https://csound.com/docs/manual/printks.html
|
|
336
|
+
# prints https://csound.com/docs/manual/prints.html
|
|
337
|
+
# sprintf https://csound.com/docs/manual/sprintf.html
|
|
338
|
+
# sprintfk https://csound.com/docs/manual/sprintfk.html
|
|
339
|
+
# work with strings that contain format specifiers. In addition, these opcodes’
|
|
340
|
+
# handling of format specifiers is inconsistent:
|
|
341
|
+
# - fprintks and fprints accept %a and %A specifiers, and accept %s specifiers
|
|
342
|
+
# starting in Csound 6.15.0.
|
|
343
|
+
# - printks and prints accept %a and %A specifiers, but don’t accept %s
|
|
344
|
+
# specifiers.
|
|
345
|
+
# - printf, printf_i, sprintf, and sprintfk don’t accept %a and %A specifiers,
|
|
346
|
+
# but accept %s specifiers.
|
|
347
|
+
# See https://github.com/csound/csound/issues/747 for more information.
|
|
348
|
+
'format specifiers': [
|
|
349
|
+
(r'%[#0\- +]*\d*(?:\.\d+)?[AE-GXac-giosux]', String.Interpol),
|
|
350
|
+
(r'%%', String.Escape)
|
|
351
|
+
],
|
|
352
|
+
|
|
353
|
+
'goto argument': [
|
|
354
|
+
include('whitespace and macro uses'),
|
|
355
|
+
(r',', Punctuation, '#pop'),
|
|
356
|
+
include('partial statements')
|
|
253
357
|
],
|
|
254
|
-
|
|
255
358
|
'goto label': [
|
|
256
|
-
include('whitespace
|
|
359
|
+
include('whitespace and macro uses'),
|
|
257
360
|
(r'\w+', Name.Label, '#pop'),
|
|
258
361
|
default('#pop')
|
|
259
362
|
],
|
|
260
|
-
'goto expression': [
|
|
261
|
-
include('whitespace or macro call'),
|
|
262
|
-
(r',', Punctuation, '#pop'),
|
|
263
|
-
include('partial expression')
|
|
264
|
-
],
|
|
265
363
|
|
|
266
|
-
'
|
|
267
|
-
include('macro
|
|
268
|
-
(r'"', String, '
|
|
269
|
-
#
|
|
270
|
-
(r'%\d*(\.\d+)?[cdhilouxX]', String.Interpol),
|
|
271
|
-
(r'%[!%nNrRtT]|[~^]|\\([\\aAbBnNrRtT"]|[0-7]{1,3})', String.Escape),
|
|
272
|
-
(r'[^\\"~$%\^\n]+', String),
|
|
273
|
-
(r'[\\"~$%\^\n]', String)
|
|
364
|
+
'prints opcode': [
|
|
365
|
+
include('whitespace and macro uses'),
|
|
366
|
+
(r'"', String, 'prints quoted string'),
|
|
367
|
+
default('#pop')
|
|
274
368
|
],
|
|
275
|
-
'
|
|
276
|
-
(r'
|
|
277
|
-
(r'[
|
|
369
|
+
'prints quoted string': [
|
|
370
|
+
(r'\\\\[aAbBnNrRtT]', String.Escape),
|
|
371
|
+
(r'%[!nNrRtT]|[~^]{1,2}', String.Escape),
|
|
372
|
+
include('quoted string')
|
|
278
373
|
],
|
|
279
374
|
|
|
280
|
-
'
|
|
281
|
-
include('whitespace
|
|
282
|
-
(r'
|
|
283
|
-
|
|
375
|
+
'Csound score opcode': [
|
|
376
|
+
include('whitespace and macro uses'),
|
|
377
|
+
(r'"', String, 'quoted string'),
|
|
378
|
+
(r'\{\{', String, 'Csound score'),
|
|
379
|
+
(r'\n', Text, '#pop')
|
|
284
380
|
],
|
|
285
|
-
'
|
|
381
|
+
'Csound score': [
|
|
286
382
|
(r'\}\}', String, '#pop'),
|
|
287
383
|
(r'([^}]+)|\}(?!\})', using(CsoundScoreLexer))
|
|
288
384
|
],
|
|
289
385
|
|
|
290
|
-
'
|
|
291
|
-
include('whitespace
|
|
292
|
-
(r'
|
|
293
|
-
|
|
386
|
+
'Python opcode': [
|
|
387
|
+
include('whitespace and macro uses'),
|
|
388
|
+
(r'"', String, 'quoted string'),
|
|
389
|
+
(r'\{\{', String, 'Python'),
|
|
390
|
+
(r'\n', Text, '#pop')
|
|
294
391
|
],
|
|
295
|
-
'
|
|
392
|
+
'Python': [
|
|
296
393
|
(r'\}\}', String, '#pop'),
|
|
297
394
|
(r'([^}]+)|\}(?!\})', using(PythonLexer))
|
|
298
395
|
],
|
|
299
396
|
|
|
300
|
-
'
|
|
301
|
-
include('whitespace
|
|
302
|
-
(r'"', String, '
|
|
303
|
-
(r'\{\{', String, '
|
|
304
|
-
(r'
|
|
305
|
-
default('#pop')
|
|
397
|
+
'Lua opcode': [
|
|
398
|
+
include('whitespace and macro uses'),
|
|
399
|
+
(r'"', String, 'quoted string'),
|
|
400
|
+
(r'\{\{', String, 'Lua'),
|
|
401
|
+
(r'\n', Text, '#pop')
|
|
306
402
|
],
|
|
307
|
-
'
|
|
403
|
+
'Lua': [
|
|
308
404
|
(r'\}\}', String, '#pop'),
|
|
309
405
|
(r'([^}]+)|\}(?!\})', using(LuaLexer))
|
|
310
406
|
]
|
|
@@ -313,7 +409,7 @@ class CsoundOrchestraLexer(CsoundLexer):
|
|
|
313
409
|
|
|
314
410
|
class CsoundDocumentLexer(RegexLexer):
|
|
315
411
|
"""
|
|
316
|
-
For `Csound <
|
|
412
|
+
For `Csound <https://csound.com>`_ documents.
|
|
317
413
|
|
|
318
414
|
.. versionadded:: 2.1
|
|
319
415
|
"""
|
|
@@ -331,15 +427,18 @@ class CsoundDocumentLexer(RegexLexer):
|
|
|
331
427
|
# be XML files.
|
|
332
428
|
tokens = {
|
|
333
429
|
'root': [
|
|
334
|
-
newline,
|
|
335
430
|
(r'/[*](.|\n)*?[*]/', Comment.Multiline),
|
|
336
|
-
(r'
|
|
431
|
+
(r'(?:;|//).*$', Comment.Single),
|
|
432
|
+
(r'[^/;<]+|/(?!/)', Text),
|
|
433
|
+
|
|
337
434
|
(r'<\s*CsInstruments', Name.Tag, ('orchestra', 'tag')),
|
|
338
435
|
(r'<\s*CsScore', Name.Tag, ('score', 'tag')),
|
|
339
|
-
(r'<\s*[
|
|
436
|
+
(r'<\s*[Hh][Tt][Mm][Ll]', Name.Tag, ('HTML', 'tag')),
|
|
437
|
+
|
|
340
438
|
(r'<\s*[\w:.-]+', Name.Tag, 'tag'),
|
|
341
439
|
(r'<\s*/\s*[\w:.-]+\s*>', Name.Tag)
|
|
342
440
|
],
|
|
441
|
+
|
|
343
442
|
'orchestra': [
|
|
344
443
|
(r'<\s*/\s*CsInstruments\s*>', Name.Tag, '#pop'),
|
|
345
444
|
(r'(.|\n)+?(?=<\s*/\s*CsInstruments\s*>)', using(CsoundOrchestraLexer))
|
|
@@ -349,9 +448,10 @@ class CsoundDocumentLexer(RegexLexer):
|
|
|
349
448
|
(r'(.|\n)+?(?=<\s*/\s*CsScore\s*>)', using(CsoundScoreLexer))
|
|
350
449
|
],
|
|
351
450
|
'HTML': [
|
|
352
|
-
(r'<\s*/\s*[
|
|
353
|
-
(r'(.|\n)+?(?=<\s*/\s*[
|
|
451
|
+
(r'<\s*/\s*[Hh][Tt][Mm][Ll]\s*>', Name.Tag, '#pop'),
|
|
452
|
+
(r'(.|\n)+?(?=<\s*/\s*[Hh][Tt][Mm][Ll]\s*>)', using(HtmlLexer))
|
|
354
453
|
],
|
|
454
|
+
|
|
355
455
|
'tag': [
|
|
356
456
|
(r'\s+', Text),
|
|
357
457
|
(r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
|