pygments.rb 1.1.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +13 -0
- data/.github/workflows/ci.yml +28 -0
- data/.github/workflows/release.yml +24 -0
- data/.gitignore +5 -5
- data/CHANGELOG.adoc +128 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.adoc +160 -0
- data/Rakefile +13 -19
- data/bench.rb +8 -7
- data/cache-lexers.rb +3 -2
- data/lexers +0 -0
- data/lib/pygments.rb +10 -11
- data/lib/pygments/lexer.rb +5 -5
- data/lib/pygments/mentos.py +23 -110
- data/lib/pygments/popen.rb +148 -229
- data/lib/pygments/version.rb +2 -2
- data/pygments.rb.gemspec +12 -11
- data/test/test_pygments.rb +46 -104
- data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
- data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
- data/vendor/pygments-main/bin/pygmentize +8 -0
- data/vendor/pygments-main/pygments/__init__.py +6 -11
- data/vendor/pygments-main/pygments/__main__.py +18 -0
- data/vendor/pygments-main/pygments/cmdline.py +94 -41
- data/vendor/pygments-main/pygments/console.py +6 -9
- data/vendor/pygments-main/pygments/filter.py +4 -6
- data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
- data/vendor/pygments-main/pygments/formatter.py +4 -4
- data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
- data/vendor/pygments-main/pygments/formatters/html.py +223 -135
- data/vendor/pygments-main/pygments/formatters/img.py +102 -38
- data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
- data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
- data/vendor/pygments-main/pygments/formatters/other.py +12 -8
- data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
- data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
- data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
- data/vendor/pygments-main/pygments/lexer.py +41 -39
- data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
- data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
- data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
- data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
- data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
- data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
- data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
- data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
- data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
- data/vendor/pygments-main/pygments/lexers/business.py +69 -36
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
- data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
- data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
- data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
- data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
- data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
- data/vendor/pygments-main/pygments/lexers/console.py +1 -1
- data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
- data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
- data/vendor/pygments-main/pygments/lexers/css.py +18 -16
- data/vendor/pygments-main/pygments/lexers/d.py +10 -5
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
- data/vendor/pygments-main/pygments/lexers/data.py +240 -97
- data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
- data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
- data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
- data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
- data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
- data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
- data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
- data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
- data/vendor/pygments-main/pygments/lexers/email.py +151 -0
- data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
- data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
- data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
- data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
- data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
- data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
- data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
- data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
- data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
- data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
- data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
- data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
- data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
- data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
- data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
- data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
- data/vendor/pygments-main/pygments/lexers/html.py +31 -19
- data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
- data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
- data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
- data/vendor/pygments-main/pygments/lexers/j.py +3 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
- data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
- data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
- data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
- data/vendor/pygments-main/pygments/lexers/make.py +10 -6
- data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
- data/vendor/pygments-main/pygments/lexers/math.py +1 -1
- data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
- data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
- data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
- data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
- data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
- data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
- data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
- data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
- data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
- data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
- data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
- data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
- data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/other.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
- data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
- data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
- data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
- data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
- data/vendor/pygments-main/pygments/lexers/php.py +64 -10
- data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
- data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
- data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
- data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
- data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
- data/vendor/pygments-main/pygments/lexers/python.py +439 -226
- data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
- data/vendor/pygments-main/pygments/lexers/r.py +13 -275
- data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
- data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
- data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
- data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
- data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
- data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
- data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
- data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
- data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
- data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
- data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
- data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
- data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
- data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
- data/vendor/pygments-main/pygments/lexers/special.py +5 -3
- data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
- data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
- data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
- data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
- data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
- data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
- data/vendor/pygments-main/pygments/lexers/text.py +2 -1
- data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
- data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
- data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
- data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
- data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
- data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
- data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
- data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
- data/vendor/pygments-main/pygments/lexers/web.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
- data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
- data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
- data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
- data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
- data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
- data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
- data/vendor/pygments-main/pygments/modeline.py +6 -5
- data/vendor/pygments-main/pygments/plugin.py +14 -18
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/scanner.py +2 -2
- data/vendor/pygments-main/pygments/sphinxext.py +2 -4
- data/vendor/pygments-main/pygments/style.py +61 -24
- data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
- data/vendor/pygments-main/pygments/styles/abap.py +29 -0
- data/vendor/pygments-main/pygments/styles/algol.py +1 -1
- data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
- data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
- data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
- data/vendor/pygments-main/pygments/styles/borland.py +1 -1
- data/vendor/pygments-main/pygments/styles/bw.py +1 -1
- data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
- data/vendor/pygments-main/pygments/styles/default.py +1 -1
- data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
- data/vendor/pygments-main/pygments/styles/igor.py +1 -1
- data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
- data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
- data/vendor/pygments-main/pygments/styles/manni.py +1 -1
- data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
- data/vendor/pygments-main/pygments/styles/native.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
- data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
- data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
- data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
- data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
- data/vendor/pygments-main/pygments/styles/sas.py +3 -0
- data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
- data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
- data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
- data/vendor/pygments-main/pygments/styles/tango.py +1 -1
- data/vendor/pygments-main/pygments/styles/trac.py +1 -1
- data/vendor/pygments-main/pygments/styles/vim.py +1 -1
- data/vendor/pygments-main/pygments/styles/vs.py +1 -1
- data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
- data/vendor/pygments-main/pygments/token.py +1 -1
- data/vendor/pygments-main/pygments/unistring.py +47 -108
- data/vendor/pygments-main/pygments/util.py +19 -95
- metadata +71 -137
- data/CHANGELOG.md +0 -98
- data/README.md +0 -121
- data/circle.yml +0 -20
- data/test/test_data.c +0 -2581
- data/test/test_data.py +0 -514
- data/test/test_data_generated +0 -2582
- data/vendor/custom_lexers/github.py +0 -565
- data/vendor/pygments-main/CHANGES +0 -1163
- data/vendor/pygments-main/MANIFEST.in +0 -6
- data/vendor/pygments-main/Makefile +0 -65
- data/vendor/pygments-main/README.rst +0 -39
- data/vendor/pygments-main/REVISION +0 -1
- data/vendor/pygments-main/TODO +0 -12
- data/vendor/pygments-main/doc/Makefile +0 -153
- data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
- data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
- data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
- data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
- data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
- data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
- data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
- data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
- data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
- data/vendor/pygments-main/doc/conf.py +0 -241
- data/vendor/pygments-main/doc/docs/api.rst +0 -331
- data/vendor/pygments-main/doc/docs/authors.rst +0 -4
- data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
- data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
- data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
- data/vendor/pygments-main/doc/docs/filters.rst +0 -41
- data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
- data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
- data/vendor/pygments-main/doc/docs/index.rst +0 -66
- data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
- data/vendor/pygments-main/doc/docs/java.rst +0 -70
- data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
- data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
- data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
- data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
- data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
- data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
- data/vendor/pygments-main/doc/docs/styles.rst +0 -201
- data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
- data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
- data/vendor/pygments-main/doc/download.rst +0 -41
- data/vendor/pygments-main/doc/faq.rst +0 -139
- data/vendor/pygments-main/doc/index.rst +0 -54
- data/vendor/pygments-main/doc/languages.rst +0 -154
- data/vendor/pygments-main/doc/make.bat +0 -190
- data/vendor/pygments-main/doc/pygmentize.1 +0 -94
- data/vendor/pygments-main/external/autopygmentize +0 -84
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
- data/vendor/pygments-main/external/markdown-processor.py +0 -67
- data/vendor/pygments-main/external/moin-parser.py +0 -112
- data/vendor/pygments-main/external/pygments.bashcomp +0 -38
- data/vendor/pygments-main/external/rst-directive.py +0 -82
- data/vendor/pygments-main/pygmentize +0 -8
- data/vendor/pygments-main/pygments/lexers/github.py +0 -565
- data/vendor/pygments-main/pygments/styles/stata.py +0 -37
- data/vendor/pygments-main/requirements.txt +0 -5
- data/vendor/pygments-main/scripts/check_sources.py +0 -211
- data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
- data/vendor/pygments-main/scripts/epydoc.css +0 -280
- data/vendor/pygments-main/scripts/find_error.py +0 -1
- data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
- data/vendor/pygments-main/scripts/pylintrc +0 -301
- data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
- data/vendor/pygments-main/setup.cfg +0 -10
- data/vendor/pygments-main/setup.py +0 -77
- data/vendor/pygments-main/tox.ini +0 -7
- data/vendor/simplejson/.gitignore +0 -10
- data/vendor/simplejson/.travis.yml +0 -5
- data/vendor/simplejson/CHANGES.txt +0 -291
- data/vendor/simplejson/LICENSE.txt +0 -19
- data/vendor/simplejson/MANIFEST.in +0 -5
- data/vendor/simplejson/README.rst +0 -19
- data/vendor/simplejson/conf.py +0 -179
- data/vendor/simplejson/index.rst +0 -628
- data/vendor/simplejson/scripts/make_docs.py +0 -18
- data/vendor/simplejson/setup.py +0 -104
- data/vendor/simplejson/simplejson/__init__.py +0 -510
- data/vendor/simplejson/simplejson/_speedups.c +0 -2745
- data/vendor/simplejson/simplejson/decoder.py +0 -425
- data/vendor/simplejson/simplejson/encoder.py +0 -567
- data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
- data/vendor/simplejson/simplejson/scanner.py +0 -77
- data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
- data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
- data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
- data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
- data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
- data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
- data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
- data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
- data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
- data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
- data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
- data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
- data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
- data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
- data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
- data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
- data/vendor/simplejson/simplejson/tool.py +0 -39
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
pygments.lexers.csound
|
|
4
4
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
5
|
|
|
6
|
-
Lexers for
|
|
6
|
+
Lexers for Csound languages.
|
|
7
7
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
8
|
+
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
|
9
9
|
:license: BSD, see LICENSE for details.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
import re
|
|
13
13
|
|
|
14
14
|
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
|
|
15
|
+
from pygments.token import Comment, Error, Keyword, Name, Number, Operator, Punctuation, \
|
|
16
|
+
String, Text, Whitespace
|
|
17
|
+
from pygments.lexers._csound_builtins import OPCODES, DEPRECATED_OPCODES
|
|
18
18
|
from pygments.lexers.html import HtmlLexer
|
|
19
19
|
from pygments.lexers.python import PythonLexer
|
|
20
20
|
from pygments.lexers.scripting import LuaLexer
|
|
@@ -25,74 +25,116 @@ newline = (r'((?:(?:;|//).*)*)(\n)', bygroups(Comment.Single, Text))
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class CsoundLexer(RegexLexer):
|
|
28
|
-
# Subclasses must define a 'single-line string' state.
|
|
29
28
|
tokens = {
|
|
30
29
|
'whitespace': [
|
|
31
30
|
(r'[ \t]+', Text),
|
|
32
|
-
(r'
|
|
33
|
-
(r'
|
|
31
|
+
(r'/[*](?:.|\n)*?[*]/', Comment.Multiline),
|
|
32
|
+
(r'(?:;|//).*$', Comment.Single),
|
|
33
|
+
(r'(\\)(\n)', bygroups(Whitespace, Text))
|
|
34
34
|
],
|
|
35
35
|
|
|
36
|
-
'
|
|
37
|
-
(r'(
|
|
38
|
-
|
|
39
|
-
(r'
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(r"((?:\\['\)]|[^'\)])+)(')", bygroups(Comment.Preproc, Punctuation)),
|
|
43
|
-
(r"([^'\)]+)(\))", bygroups(Comment.Preproc, Punctuation), '#pop')
|
|
36
|
+
'preprocessor directives': [
|
|
37
|
+
(r'#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+', Comment.Preproc),
|
|
38
|
+
(r'#includestr', Comment.Preproc, 'includestr directive'),
|
|
39
|
+
(r'#include', Comment.Preproc, 'include directive'),
|
|
40
|
+
(r'#[ \t]*define', Comment.Preproc, 'define directive'),
|
|
41
|
+
(r'#(?:ifn?def|undef)\b', Comment.Preproc, 'macro directive')
|
|
44
42
|
],
|
|
45
43
|
|
|
46
|
-
'
|
|
44
|
+
'include directive': [
|
|
47
45
|
include('whitespace'),
|
|
48
|
-
|
|
46
|
+
(r'([^ \t]).*?\1', String, '#pop')
|
|
49
47
|
],
|
|
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)
|
|
48
|
+
'includestr directive': [
|
|
49
|
+
include('whitespace'),
|
|
50
|
+
(r'"', String, ('#pop', 'quoted string'))
|
|
56
51
|
],
|
|
57
52
|
|
|
58
|
-
'
|
|
53
|
+
'define directive': [
|
|
54
|
+
(r'\n', Text),
|
|
59
55
|
include('whitespace'),
|
|
60
|
-
(r'
|
|
56
|
+
(r'([A-Z_a-z]\w*)(\()', bygroups(Comment.Preproc, Punctuation),
|
|
57
|
+
('#pop', 'macro parameter name list')),
|
|
58
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, ('#pop', 'before macro body'))
|
|
61
59
|
],
|
|
62
|
-
|
|
63
|
-
'macro name': [
|
|
60
|
+
'macro parameter name list': [
|
|
64
61
|
include('whitespace'),
|
|
65
|
-
(r'
|
|
66
|
-
|
|
67
|
-
(r'\
|
|
62
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc),
|
|
63
|
+
(r"['#]", Punctuation),
|
|
64
|
+
(r'\)', Punctuation, ('#pop', 'before macro body'))
|
|
68
65
|
],
|
|
69
|
-
'
|
|
66
|
+
'before macro body': [
|
|
67
|
+
(r'\n', Text),
|
|
70
68
|
include('whitespace'),
|
|
71
|
-
(r'#', Punctuation, '
|
|
69
|
+
(r'#', Punctuation, ('#pop', 'macro body'))
|
|
72
70
|
],
|
|
73
|
-
'
|
|
74
|
-
(r'(
|
|
75
|
-
(r'
|
|
71
|
+
'macro body': [
|
|
72
|
+
(r'(?:\\(?!#)|[^#\\]|\n)+', Comment.Preproc),
|
|
73
|
+
(r'\\#', Comment.Preproc),
|
|
74
|
+
(r'(?<!\\)#', Punctuation, '#pop')
|
|
76
75
|
],
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
(
|
|
80
|
-
|
|
76
|
+
|
|
77
|
+
'macro directive': [
|
|
78
|
+
include('whitespace'),
|
|
79
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, '#pop')
|
|
81
80
|
],
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
(r'
|
|
81
|
+
|
|
82
|
+
'macro uses': [
|
|
83
|
+
(r'(\$[A-Z_a-z]\w*\.?)(\()', bygroups(Comment.Preproc, Punctuation),
|
|
84
|
+
'macro parameter value list'),
|
|
85
|
+
(r'\$[A-Z_a-z]\w*(?:\.|\b)', Comment.Preproc)
|
|
86
|
+
],
|
|
87
|
+
'macro parameter value list': [
|
|
88
|
+
(r'(?:[^\'#"{()]|\{(?!\{))+', Comment.Preproc),
|
|
89
|
+
(r"['#]", Punctuation),
|
|
90
|
+
(r'"', String, 'macro parameter value quoted string'),
|
|
91
|
+
(r'\{\{', String, 'macro parameter value braced string'),
|
|
92
|
+
(r'\(', Comment.Preproc, 'macro parameter value parenthetical'),
|
|
93
|
+
(r'\)', Punctuation, '#pop')
|
|
94
|
+
],
|
|
95
|
+
'macro parameter value quoted string': [
|
|
96
|
+
(r"\\[#'()]", Comment.Preproc),
|
|
97
|
+
(r"[#'()]", Error),
|
|
98
|
+
include('quoted string')
|
|
99
|
+
],
|
|
100
|
+
'macro parameter value braced string': [
|
|
101
|
+
(r"\\[#'()]", Comment.Preproc),
|
|
102
|
+
(r"[#'()]", Error),
|
|
103
|
+
include('braced string')
|
|
104
|
+
],
|
|
105
|
+
'macro parameter value parenthetical': [
|
|
106
|
+
(r'(?:[^\\()]|\\\))+', Comment.Preproc),
|
|
107
|
+
(r'\(', Comment.Preproc, '#push'),
|
|
108
|
+
(r'\)', Comment.Preproc, '#pop')
|
|
109
|
+
],
|
|
110
|
+
|
|
111
|
+
'whitespace and macro uses': [
|
|
112
|
+
include('whitespace'),
|
|
113
|
+
include('macro uses')
|
|
114
|
+
],
|
|
115
|
+
|
|
116
|
+
'numbers': [
|
|
117
|
+
(r'\d+[Ee][+-]?\d+|(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?', Number.Float),
|
|
118
|
+
(r'(0[Xx])([0-9A-Fa-f]+)', bygroups(Keyword.Type, Number.Hex)),
|
|
119
|
+
(r'\d+', Number.Integer)
|
|
85
120
|
],
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
(r'
|
|
121
|
+
|
|
122
|
+
'quoted string': [
|
|
123
|
+
(r'"', String, '#pop'),
|
|
124
|
+
(r'[^"$]+', String),
|
|
125
|
+
include('macro uses'),
|
|
126
|
+
(r'[$]', String)
|
|
127
|
+
],
|
|
128
|
+
|
|
129
|
+
'braced string': [
|
|
130
|
+
# Do nothing. This must be defined in subclasses.
|
|
89
131
|
]
|
|
90
132
|
}
|
|
91
133
|
|
|
92
134
|
|
|
93
135
|
class CsoundScoreLexer(CsoundLexer):
|
|
94
136
|
"""
|
|
95
|
-
For `Csound <
|
|
137
|
+
For `Csound <https://csound.com>`_ scores.
|
|
96
138
|
|
|
97
139
|
.. versionadded:: 2.1
|
|
98
140
|
"""
|
|
@@ -102,47 +144,70 @@ class CsoundScoreLexer(CsoundLexer):
|
|
|
102
144
|
filenames = ['*.sco']
|
|
103
145
|
|
|
104
146
|
tokens = {
|
|
105
|
-
'
|
|
147
|
+
'root': [
|
|
148
|
+
(r'\n', Text),
|
|
149
|
+
include('whitespace and macro uses'),
|
|
106
150
|
include('preprocessor directives'),
|
|
107
|
-
|
|
108
|
-
(r'
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
(r'
|
|
113
|
-
|
|
151
|
+
|
|
152
|
+
(r'[aBbCdefiqstvxy]', Keyword),
|
|
153
|
+
# There is also a w statement that is generated internally and should not be
|
|
154
|
+
# used; see https://github.com/csound/csound/issues/750.
|
|
155
|
+
|
|
156
|
+
(r'z', Keyword.Constant),
|
|
157
|
+
# z is a constant equal to 800,000,000,000. 800 billion seconds is about
|
|
158
|
+
# 25,367.8 years. See also
|
|
159
|
+
# https://csound.com/docs/manual/ScoreTop.html and
|
|
160
|
+
# https://github.com/csound/csound/search?q=stof+path%3AEngine+filename%3Asread.c.
|
|
161
|
+
|
|
162
|
+
(r'([nNpP][pP])(\d+)', bygroups(Keyword, Number.Integer)),
|
|
163
|
+
|
|
164
|
+
(r'[mn]', Keyword, 'mark statement'),
|
|
165
|
+
|
|
166
|
+
include('numbers'),
|
|
167
|
+
(r'[!+\-*/^%&|<>#~.]', Operator),
|
|
168
|
+
(r'[()\[\]]', Punctuation),
|
|
169
|
+
(r'"', String, 'quoted string'),
|
|
170
|
+
(r'\{', Comment.Preproc, 'loop after left brace'),
|
|
114
171
|
],
|
|
115
172
|
|
|
116
|
-
'statement': [
|
|
117
|
-
include('whitespace
|
|
118
|
-
|
|
119
|
-
|
|
173
|
+
'mark statement': [
|
|
174
|
+
include('whitespace and macro uses'),
|
|
175
|
+
(r'[A-Z_a-z]\w*', Name.Label),
|
|
176
|
+
(r'\n', Text, '#pop')
|
|
120
177
|
],
|
|
121
178
|
|
|
122
|
-
'
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
179
|
+
'loop after left brace': [
|
|
180
|
+
include('whitespace and macro uses'),
|
|
181
|
+
(r'\d+', Number.Integer, ('#pop', 'loop after repeat count')),
|
|
182
|
+
],
|
|
183
|
+
'loop after repeat count': [
|
|
184
|
+
include('whitespace and macro uses'),
|
|
185
|
+
(r'[A-Z_a-z]\w*', Comment.Preproc, ('#pop', 'loop'))
|
|
186
|
+
],
|
|
187
|
+
'loop': [
|
|
188
|
+
(r'\}', Comment.Preproc, '#pop'),
|
|
189
|
+
include('root')
|
|
127
190
|
],
|
|
128
191
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
192
|
+
# Braced strings are not allowed in Csound scores, but this is needed because the
|
|
193
|
+
# superclass includes it.
|
|
194
|
+
'braced string': [
|
|
195
|
+
(r'\}\}', String, '#pop'),
|
|
196
|
+
(r'[^}]|\}(?!\})', String)
|
|
132
197
|
]
|
|
133
198
|
}
|
|
134
199
|
|
|
135
200
|
|
|
136
201
|
class CsoundOrchestraLexer(CsoundLexer):
|
|
137
202
|
"""
|
|
138
|
-
For `Csound <
|
|
203
|
+
For `Csound <https://csound.com>`_ orchestras.
|
|
139
204
|
|
|
140
205
|
.. versionadded:: 2.1
|
|
141
206
|
"""
|
|
142
207
|
|
|
143
208
|
name = 'Csound Orchestra'
|
|
144
209
|
aliases = ['csound', 'csound-orc']
|
|
145
|
-
filenames = ['*.orc']
|
|
210
|
+
filenames = ['*.orc', '*.udo']
|
|
146
211
|
|
|
147
212
|
user_defined_opcodes = set()
|
|
148
213
|
|
|
@@ -152,159 +217,191 @@ class CsoundOrchestraLexer(CsoundLexer):
|
|
|
152
217
|
yield match.start(), Name.Function, opcode
|
|
153
218
|
|
|
154
219
|
def name_callback(lexer, match):
|
|
155
|
-
|
|
156
|
-
|
|
220
|
+
type_annotation_token = Keyword.Type
|
|
221
|
+
|
|
222
|
+
name = match.group(1)
|
|
223
|
+
if name in OPCODES or name in DEPRECATED_OPCODES:
|
|
157
224
|
yield match.start(), Name.Builtin, name
|
|
158
225
|
elif name in lexer.user_defined_opcodes:
|
|
159
226
|
yield match.start(), Name.Function, name
|
|
160
227
|
else:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
yield
|
|
228
|
+
type_annotation_token = Name
|
|
229
|
+
name_match = re.search(r'^(g?[afikSw])(\w+)', name)
|
|
230
|
+
if name_match:
|
|
231
|
+
yield name_match.start(1), Keyword.Type, name_match.group(1)
|
|
232
|
+
yield name_match.start(2), Name, name_match.group(2)
|
|
165
233
|
else:
|
|
166
234
|
yield match.start(), Name, name
|
|
167
235
|
|
|
236
|
+
if match.group(2):
|
|
237
|
+
yield match.start(2), Punctuation, match.group(2)
|
|
238
|
+
yield match.start(3), type_annotation_token, match.group(3)
|
|
239
|
+
|
|
168
240
|
tokens = {
|
|
169
|
-
'
|
|
170
|
-
(r'\
|
|
171
|
-
|
|
241
|
+
'root': [
|
|
242
|
+
(r'\n', Text),
|
|
243
|
+
|
|
244
|
+
(r'^([ \t]*)(\w+)(:)([ \t]+|$)', bygroups(Text, Name.Label, Punctuation, Text)),
|
|
172
245
|
|
|
173
|
-
|
|
246
|
+
include('whitespace and macro uses'),
|
|
174
247
|
include('preprocessor directives'),
|
|
175
|
-
|
|
176
|
-
(r'\
|
|
177
|
-
(r'
|
|
178
|
-
(r'\
|
|
179
|
-
|
|
180
|
-
(
|
|
181
|
-
|
|
182
|
-
|
|
248
|
+
|
|
249
|
+
(r'\binstr\b', Keyword.Declaration, 'instrument numbers and identifiers'),
|
|
250
|
+
(r'\bopcode\b', Keyword.Declaration, 'after opcode keyword'),
|
|
251
|
+
(r'\b(?:end(?:in|op))\b', Keyword.Declaration),
|
|
252
|
+
|
|
253
|
+
include('partial statements')
|
|
254
|
+
],
|
|
255
|
+
|
|
256
|
+
'partial statements': [
|
|
257
|
+
(r'\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\b', Name.Variable.Global),
|
|
258
|
+
|
|
259
|
+
include('numbers'),
|
|
260
|
+
|
|
261
|
+
(r'\+=|-=|\*=|/=|<<|>>|<=|>=|==|!=|&&|\|\||[~¬]|[=!+\-*/^%&|<>#?:]', Operator),
|
|
262
|
+
(r'[(),\[\]]', Punctuation),
|
|
263
|
+
|
|
264
|
+
(r'"', String, 'quoted string'),
|
|
265
|
+
(r'\{\{', String, 'braced string'),
|
|
266
|
+
|
|
183
267
|
(words((
|
|
184
|
-
# Keywords
|
|
185
268
|
'do', 'else', 'elseif', 'endif', 'enduntil', 'fi', 'if', 'ithen', 'kthen',
|
|
186
269
|
'od', 'then', 'until', 'while',
|
|
187
|
-
# Opcodes that act as control structures
|
|
188
|
-
'return', 'timout'
|
|
189
270
|
), 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
|
-
],
|
|
271
|
+
(words(('return', 'rireturn'), prefix=r'\b', suffix=r'\b'), Keyword.Pseudo),
|
|
209
272
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
(r'\
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
(r'\
|
|
223
|
-
(r'
|
|
224
|
-
|
|
273
|
+
(r'\b[ik]?goto\b', Keyword, 'goto label'),
|
|
274
|
+
(r'\b(r(?:einit|igoto)|tigoto)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
275
|
+
'goto label'),
|
|
276
|
+
(r'\b(c(?:g|in?|k|nk?)goto)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
277
|
+
('goto label', 'goto argument')),
|
|
278
|
+
(r'\b(timout)(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
279
|
+
('goto label', 'goto argument', 'goto argument')),
|
|
280
|
+
(r'\b(loop_[gl][et])(\(|\b)', bygroups(Keyword.Pseudo, Punctuation),
|
|
281
|
+
('goto label', 'goto argument', 'goto argument', 'goto argument')),
|
|
282
|
+
|
|
283
|
+
(r'\bprintk?s\b', Name.Builtin, 'prints opcode'),
|
|
284
|
+
(r'\b(?:readscore|scoreline(?:_i)?)\b', Name.Builtin, 'Csound score opcode'),
|
|
285
|
+
(r'\bpyl?run[it]?\b', Name.Builtin, 'Python opcode'),
|
|
286
|
+
(r'\blua_(?:exec|opdef)\b', Name.Builtin, 'Lua opcode'),
|
|
287
|
+
(r'\bp\d+\b', Name.Variable.Instance),
|
|
288
|
+
(r'\b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\b', name_callback)
|
|
225
289
|
],
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
include('whitespace
|
|
229
|
-
(r'\
|
|
230
|
-
|
|
231
|
-
|
|
290
|
+
|
|
291
|
+
'instrument numbers and identifiers': [
|
|
292
|
+
include('whitespace and macro uses'),
|
|
293
|
+
(r'\d+|[A-Z_a-z]\w*', Name.Function),
|
|
294
|
+
(r'[+,]', Punctuation),
|
|
295
|
+
(r'\n', Text, '#pop')
|
|
232
296
|
],
|
|
233
297
|
|
|
234
|
-
'opcode
|
|
235
|
-
include('whitespace
|
|
236
|
-
(r'[
|
|
298
|
+
'after opcode keyword': [
|
|
299
|
+
include('whitespace and macro uses'),
|
|
300
|
+
(r'[A-Z_a-z]\w*', opcode_name_callback, ('#pop', 'opcode type signatures')),
|
|
301
|
+
(r'\n', Text, '#pop')
|
|
237
302
|
],
|
|
238
|
-
'opcode
|
|
239
|
-
include('whitespace
|
|
240
|
-
|
|
241
|
-
|
|
303
|
+
'opcode type signatures': [
|
|
304
|
+
include('whitespace and macro uses'),
|
|
305
|
+
|
|
306
|
+
# https://github.com/csound/csound/search?q=XIDENT+path%3AEngine+filename%3Acsound_orc.lex
|
|
307
|
+
(r'0|[afijkKoOpPStV\[\]]+', Keyword.Type),
|
|
308
|
+
|
|
309
|
+
(r',', Punctuation),
|
|
310
|
+
(r'\n', Text, '#pop')
|
|
242
311
|
],
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
312
|
+
|
|
313
|
+
'quoted string': [
|
|
314
|
+
(r'"', String, '#pop'),
|
|
315
|
+
(r'[^\\"$%)]+', String),
|
|
316
|
+
include('macro uses'),
|
|
317
|
+
include('escape sequences'),
|
|
318
|
+
include('format specifiers'),
|
|
319
|
+
(r'[\\$%)]', String)
|
|
246
320
|
],
|
|
247
|
-
'
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
(
|
|
251
|
-
include('
|
|
252
|
-
|
|
321
|
+
'braced string': [
|
|
322
|
+
(r'\}\}', String, '#pop'),
|
|
323
|
+
(r'(?:[^\\%)}]|\}(?!\}))+', String),
|
|
324
|
+
include('escape sequences'),
|
|
325
|
+
include('format specifiers'),
|
|
326
|
+
(r'[\\%)]', String)
|
|
327
|
+
],
|
|
328
|
+
'escape sequences': [
|
|
329
|
+
# https://github.com/csound/csound/search?q=unquote_string+path%3AEngine+filename%3Acsound_orc_compile.c
|
|
330
|
+
(r'\\(?:[\\abnrt"]|[0-7]{1,3})', String.Escape)
|
|
331
|
+
],
|
|
332
|
+
# Format specifiers are highlighted in all strings, even though only
|
|
333
|
+
# fprintks https://csound.com/docs/manual/fprintks.html
|
|
334
|
+
# fprints https://csound.com/docs/manual/fprints.html
|
|
335
|
+
# printf/printf_i https://csound.com/docs/manual/printf.html
|
|
336
|
+
# printks https://csound.com/docs/manual/printks.html
|
|
337
|
+
# prints https://csound.com/docs/manual/prints.html
|
|
338
|
+
# sprintf https://csound.com/docs/manual/sprintf.html
|
|
339
|
+
# sprintfk https://csound.com/docs/manual/sprintfk.html
|
|
340
|
+
# work with strings that contain format specifiers. In addition, these opcodes’
|
|
341
|
+
# handling of format specifiers is inconsistent:
|
|
342
|
+
# - fprintks and fprints accept %a and %A specifiers, and accept %s specifiers
|
|
343
|
+
# starting in Csound 6.15.0.
|
|
344
|
+
# - printks and prints accept %a and %A specifiers, but don’t accept %s
|
|
345
|
+
# specifiers.
|
|
346
|
+
# - printf, printf_i, sprintf, and sprintfk don’t accept %a and %A specifiers,
|
|
347
|
+
# but accept %s specifiers.
|
|
348
|
+
# See https://github.com/csound/csound/issues/747 for more information.
|
|
349
|
+
'format specifiers': [
|
|
350
|
+
(r'%[#0\- +]*\d*(?:\.\d+)?[AE-GXac-giosux]', String.Interpol),
|
|
351
|
+
(r'%%', String.Escape)
|
|
352
|
+
],
|
|
353
|
+
|
|
354
|
+
'goto argument': [
|
|
355
|
+
include('whitespace and macro uses'),
|
|
356
|
+
(r',', Punctuation, '#pop'),
|
|
357
|
+
include('partial statements')
|
|
253
358
|
],
|
|
254
|
-
|
|
255
359
|
'goto label': [
|
|
256
|
-
include('whitespace
|
|
360
|
+
include('whitespace and macro uses'),
|
|
257
361
|
(r'\w+', Name.Label, '#pop'),
|
|
258
362
|
default('#pop')
|
|
259
363
|
],
|
|
260
|
-
'goto expression': [
|
|
261
|
-
include('whitespace or macro call'),
|
|
262
|
-
(r',', Punctuation, '#pop'),
|
|
263
|
-
include('partial expression')
|
|
264
|
-
],
|
|
265
364
|
|
|
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)
|
|
365
|
+
'prints opcode': [
|
|
366
|
+
include('whitespace and macro uses'),
|
|
367
|
+
(r'"', String, 'prints quoted string'),
|
|
368
|
+
default('#pop')
|
|
274
369
|
],
|
|
275
|
-
'
|
|
276
|
-
(r'
|
|
277
|
-
(r'[
|
|
370
|
+
'prints quoted string': [
|
|
371
|
+
(r'\\\\[aAbBnNrRtT]', String.Escape),
|
|
372
|
+
(r'%[!nNrRtT]|[~^]{1,2}', String.Escape),
|
|
373
|
+
include('quoted string')
|
|
278
374
|
],
|
|
279
375
|
|
|
280
|
-
'
|
|
281
|
-
include('whitespace
|
|
282
|
-
(r'
|
|
283
|
-
|
|
376
|
+
'Csound score opcode': [
|
|
377
|
+
include('whitespace and macro uses'),
|
|
378
|
+
(r'"', String, 'quoted string'),
|
|
379
|
+
(r'\{\{', String, 'Csound score'),
|
|
380
|
+
(r'\n', Text, '#pop')
|
|
284
381
|
],
|
|
285
|
-
'
|
|
382
|
+
'Csound score': [
|
|
286
383
|
(r'\}\}', String, '#pop'),
|
|
287
384
|
(r'([^}]+)|\}(?!\})', using(CsoundScoreLexer))
|
|
288
385
|
],
|
|
289
386
|
|
|
290
|
-
'
|
|
291
|
-
include('whitespace
|
|
292
|
-
(r'
|
|
293
|
-
|
|
387
|
+
'Python opcode': [
|
|
388
|
+
include('whitespace and macro uses'),
|
|
389
|
+
(r'"', String, 'quoted string'),
|
|
390
|
+
(r'\{\{', String, 'Python'),
|
|
391
|
+
(r'\n', Text, '#pop')
|
|
294
392
|
],
|
|
295
|
-
'
|
|
393
|
+
'Python': [
|
|
296
394
|
(r'\}\}', String, '#pop'),
|
|
297
395
|
(r'([^}]+)|\}(?!\})', using(PythonLexer))
|
|
298
396
|
],
|
|
299
397
|
|
|
300
|
-
'
|
|
301
|
-
include('whitespace
|
|
302
|
-
(r'"', String, '
|
|
303
|
-
(r'\{\{', String, '
|
|
304
|
-
(r'
|
|
305
|
-
default('#pop')
|
|
398
|
+
'Lua opcode': [
|
|
399
|
+
include('whitespace and macro uses'),
|
|
400
|
+
(r'"', String, 'quoted string'),
|
|
401
|
+
(r'\{\{', String, 'Lua'),
|
|
402
|
+
(r'\n', Text, '#pop')
|
|
306
403
|
],
|
|
307
|
-
'
|
|
404
|
+
'Lua': [
|
|
308
405
|
(r'\}\}', String, '#pop'),
|
|
309
406
|
(r'([^}]+)|\}(?!\})', using(LuaLexer))
|
|
310
407
|
]
|
|
@@ -313,7 +410,7 @@ class CsoundOrchestraLexer(CsoundLexer):
|
|
|
313
410
|
|
|
314
411
|
class CsoundDocumentLexer(RegexLexer):
|
|
315
412
|
"""
|
|
316
|
-
For `Csound <
|
|
413
|
+
For `Csound <https://csound.com>`_ documents.
|
|
317
414
|
|
|
318
415
|
.. versionadded:: 2.1
|
|
319
416
|
"""
|
|
@@ -331,15 +428,18 @@ class CsoundDocumentLexer(RegexLexer):
|
|
|
331
428
|
# be XML files.
|
|
332
429
|
tokens = {
|
|
333
430
|
'root': [
|
|
334
|
-
newline,
|
|
335
431
|
(r'/[*](.|\n)*?[*]/', Comment.Multiline),
|
|
336
|
-
(r'
|
|
432
|
+
(r'(?:;|//).*$', Comment.Single),
|
|
433
|
+
(r'[^/;<]+|/(?!/)', Text),
|
|
434
|
+
|
|
337
435
|
(r'<\s*CsInstruments', Name.Tag, ('orchestra', 'tag')),
|
|
338
436
|
(r'<\s*CsScore', Name.Tag, ('score', 'tag')),
|
|
339
|
-
(r'<\s*[
|
|
437
|
+
(r'<\s*[Hh][Tt][Mm][Ll]', Name.Tag, ('HTML', 'tag')),
|
|
438
|
+
|
|
340
439
|
(r'<\s*[\w:.-]+', Name.Tag, 'tag'),
|
|
341
440
|
(r'<\s*/\s*[\w:.-]+\s*>', Name.Tag)
|
|
342
441
|
],
|
|
442
|
+
|
|
343
443
|
'orchestra': [
|
|
344
444
|
(r'<\s*/\s*CsInstruments\s*>', Name.Tag, '#pop'),
|
|
345
445
|
(r'(.|\n)+?(?=<\s*/\s*CsInstruments\s*>)', using(CsoundOrchestraLexer))
|
|
@@ -349,9 +449,10 @@ class CsoundDocumentLexer(RegexLexer):
|
|
|
349
449
|
(r'(.|\n)+?(?=<\s*/\s*CsScore\s*>)', using(CsoundScoreLexer))
|
|
350
450
|
],
|
|
351
451
|
'HTML': [
|
|
352
|
-
(r'<\s*/\s*[
|
|
353
|
-
(r'(.|\n)+?(?=<\s*/\s*[
|
|
452
|
+
(r'<\s*/\s*[Hh][Tt][Mm][Ll]\s*>', Name.Tag, '#pop'),
|
|
453
|
+
(r'(.|\n)+?(?=<\s*/\s*[Hh][Tt][Mm][Ll]\s*>)', using(HtmlLexer))
|
|
354
454
|
],
|
|
455
|
+
|
|
355
456
|
'tag': [
|
|
356
457
|
(r'\s+', Text),
|
|
357
458
|
(r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
|