pygments.rb 2.0.0.rc3 → 2.3.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 +4 -4
- data/.github/workflows/ci.yml +13 -1
- data/.gitignore +0 -1
- data/.rubocop.yml +16 -0
- data/CHANGELOG.adoc +19 -0
- data/README.adoc +1 -3
- data/Rakefile +0 -14
- data/bench.rb +11 -6
- data/lib/pygments/lexer.rb +84 -62
- data/lib/pygments/mentos.py +7 -49
- data/lib/pygments/popen.rb +133 -173
- data/lib/pygments/version.rb +1 -1
- data/lib/pygments.rb +15 -6
- data/pygments.rb.gemspec +16 -11
- data/test/test_pygments.rb +19 -40
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/AUTHORS +13 -1
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/INSTALLER +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/LICENSE +1 -1
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/METADATA +8 -9
- data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +524 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/REQUESTED +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/WHEEL +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/entry_points.txt +0 -0
- data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/top_level.txt +0 -0
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +2 -3
- data/vendor/pygments-main/pygments/__main__.py +1 -2
- data/vendor/pygments-main/pygments/cmdline.py +179 -159
- data/vendor/pygments-main/pygments/console.py +1 -2
- data/vendor/pygments-main/pygments/filter.py +1 -2
- data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
- data/vendor/pygments-main/pygments/formatter.py +1 -2
- data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
- data/vendor/pygments-main/pygments/formatters/_mapping.py +2 -2
- data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
- data/vendor/pygments-main/pygments/formatters/html.py +53 -25
- data/vendor/pygments-main/pygments/formatters/img.py +24 -10
- data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
- data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
- data/vendor/pygments-main/pygments/formatters/other.py +7 -10
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +83 -0
- data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
- data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
- data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
- data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
- data/vendor/pygments-main/pygments/lexer.py +7 -6
- data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +56 -16
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +401 -0
- data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mapping.py +73 -54
- data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
- data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
- data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
- data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
- data/vendor/pygments-main/pygments/lexers/actionscript.py +9 -10
- data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
- data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +3 -4
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +53 -0
- data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +448 -0
- data/vendor/pygments-main/pygments/lexers/apl.py +7 -5
- data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
- data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
- data/vendor/pygments-main/pygments/lexers/asc.py +51 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +87 -60
- data/vendor/pygments-main/pygments/lexers/automation.py +8 -3
- data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
- data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
- data/vendor/pygments-main/pygments/lexers/bibtex.py +3 -4
- data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
- data/vendor/pygments-main/pygments/lexers/business.py +3 -4
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +61 -36
- data/vendor/pygments-main/pygments/lexers/c_like.py +103 -5
- data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
- data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
- data/vendor/pygments-main/pygments/lexers/chapel.py +52 -29
- data/vendor/pygments-main/pygments/lexers/clean.py +7 -8
- data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
- data/vendor/pygments-main/pygments/lexers/configs.py +139 -48
- data/vendor/pygments-main/pygments/lexers/console.py +1 -2
- data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
- data/vendor/pygments-main/pygments/lexers/csound.py +3 -4
- data/vendor/pygments-main/pygments/lexers/css.py +11 -8
- data/vendor/pygments-main/pygments/lexers/d.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
- data/vendor/pygments-main/pygments/lexers/data.py +2 -3
- data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
- data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
- data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
- data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
- data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
- data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
- data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
- data/vendor/pygments-main/pygments/lexers/email.py +1 -2
- data/vendor/pygments-main/pygments/lexers/erlang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
- 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 +2 -3
- data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
- data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
- data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
- data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
- data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
- data/vendor/pygments-main/pygments/lexers/futhark.py +111 -0
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +36 -0
- data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/go.py +3 -4
- data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
- data/vendor/pygments-main/pygments/lexers/graphics.py +4 -5
- data/vendor/pygments-main/pygments/lexers/graphviz.py +58 -0
- data/vendor/pygments-main/pygments/lexers/gsql.py +92 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +5 -6
- data/vendor/pygments-main/pygments/lexers/haxe.py +4 -5
- data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
- data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
- data/vendor/pygments-main/pygments/lexers/html.py +7 -8
- data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
- data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
- data/vendor/pygments-main/pygments/lexers/installers.py +3 -4
- data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
- data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
- data/vendor/pygments-main/pygments/lexers/j.py +2 -3
- data/vendor/pygments-main/pygments/lexers/javascript.py +170 -156
- data/vendor/pygments-main/pygments/lexers/jslt.py +94 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +136 -185
- data/vendor/pygments-main/pygments/lexers/jvm.py +433 -307
- data/vendor/pygments-main/pygments/lexers/kuin.py +299 -0
- data/vendor/pygments-main/pygments/lexers/lisp.py +25 -23
- data/vendor/pygments-main/pygments/lexers/make.py +3 -4
- data/vendor/pygments-main/pygments/lexers/markup.py +13 -16
- data/vendor/pygments-main/pygments/lexers/math.py +1 -2
- data/vendor/pygments-main/pygments/lexers/matlab.py +2666 -93
- data/vendor/pygments-main/pygments/lexers/meson.py +155 -0
- data/vendor/pygments-main/pygments/lexers/mime.py +7 -23
- data/vendor/pygments-main/pygments/lexers/ml.py +8 -9
- data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
- data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
- data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
- data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/nimrod.py +2 -3
- 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 +1 -2
- data/vendor/pygments-main/pygments/lexers/objective.py +6 -7
- 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 +26 -27
- data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
- data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/php.py +3 -4
- data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
- data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
- data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
- data/vendor/pygments-main/pygments/lexers/procfile.py +43 -0
- data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
- data/vendor/pygments-main/pygments/lexers/promql.py +2 -3
- data/vendor/pygments-main/pygments/lexers/python.py +38 -17
- data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
- data/vendor/pygments-main/pygments/lexers/r.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
- data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
- data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
- data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
- data/vendor/pygments-main/pygments/lexers/ruby.py +31 -25
- data/vendor/pygments-main/pygments/lexers/rust.py +10 -12
- data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
- data/vendor/pygments-main/pygments/lexers/scripting.py +12 -13
- data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
- data/vendor/pygments-main/pygments/lexers/shell.py +15 -17
- data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
- data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
- data/vendor/pygments-main/pygments/lexers/smithy.py +79 -0
- data/vendor/pygments-main/pygments/lexers/smv.py +2 -3
- data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
- data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
- data/vendor/pygments-main/pygments/lexers/special.py +44 -30
- data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
- data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
- data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -5
- data/vendor/pygments-main/pygments/lexers/tcl.py +4 -5
- data/vendor/pygments-main/pygments/lexers/teal.py +88 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +34 -35
- data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
- data/vendor/pygments-main/pygments/lexers/testing.py +2 -3
- data/vendor/pygments-main/pygments/lexers/text.py +1 -2
- data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
- data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
- data/vendor/pygments-main/pygments/lexers/theorem.py +11 -7
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +118 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +26 -17
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -3
- data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
- data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
- data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
- data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
- data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
- data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
- data/vendor/pygments-main/pygments/lexers/web.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webassembly.py +120 -0
- data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
- data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
- data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
- data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
- data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
- data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
- data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
- data/vendor/pygments-main/pygments/modeline.py +1 -2
- data/vendor/pygments-main/pygments/plugin.py +2 -3
- data/vendor/pygments-main/pygments/regexopt.py +2 -3
- data/vendor/pygments-main/pygments/scanner.py +1 -2
- data/vendor/pygments-main/pygments/sphinxext.py +1 -2
- data/vendor/pygments-main/pygments/style.py +4 -5
- data/vendor/pygments-main/pygments/styles/__init__.py +5 -2
- 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 +1 -2
- 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 +2 -2
- data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
- data/vendor/pygments-main/pygments/styles/gruvbox.py +107 -0
- data/vendor/pygments-main/pygments/styles/igor.py +1 -2
- data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
- 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 +1 -2
- data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
- data/vendor/pygments-main/pygments/styles/native.py +2 -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 +4 -2
- data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
- data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
- 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 +1 -2
- data/vendor/pygments-main/pygments/util.py +2 -5
- metadata +48 -23
- data/cache-lexers.rb +0 -9
- data/lexers +0 -0
- data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +0 -482
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.rust
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for the Rust language.
|
|
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
|
|
|
@@ -110,7 +109,7 @@ class RustLexer(RegexLexer):
|
|
|
110
109
|
# Types in positions.
|
|
111
110
|
(r'(?::|->)', Text, 'typename'),
|
|
112
111
|
# Labels
|
|
113
|
-
(r'(break|continue)(\s*)(\'[A-Za-z_]\w*)?',
|
|
112
|
+
(r'(break|continue)(\b\s*)(\'[A-Za-z_]\w*)?',
|
|
114
113
|
bygroups(Keyword, Text.Whitespace, Name.Label)),
|
|
115
114
|
|
|
116
115
|
# Character literals
|
|
@@ -136,7 +135,7 @@ class RustLexer(RegexLexer):
|
|
|
136
135
|
# String literals
|
|
137
136
|
(r'b"', String, 'bytestring'),
|
|
138
137
|
(r'"', String, 'string'),
|
|
139
|
-
(r'b?r(#*)".*?"\1', String),
|
|
138
|
+
(r'(?s)b?r(#*)".*?"\1', String),
|
|
140
139
|
|
|
141
140
|
# Lifetime names
|
|
142
141
|
(r"'", Operator, 'lifetime'),
|
|
@@ -153,6 +152,11 @@ class RustLexer(RegexLexer):
|
|
|
153
152
|
|
|
154
153
|
# Attributes
|
|
155
154
|
(r'#!?\[', Comment.Preproc, 'attribute['),
|
|
155
|
+
|
|
156
|
+
# Misc
|
|
157
|
+
# Lone hashes: not used in Rust syntax, but allowed in macro
|
|
158
|
+
# arguments, most famously for quote::quote!()
|
|
159
|
+
(r'#', Text),
|
|
156
160
|
],
|
|
157
161
|
'comment': [
|
|
158
162
|
(r'[^*/]+', Comment.Multiline),
|
|
@@ -209,16 +213,10 @@ class RustLexer(RegexLexer):
|
|
|
209
213
|
'attribute_common': [
|
|
210
214
|
(r'"', String, 'string'),
|
|
211
215
|
(r'\[', Comment.Preproc, 'attribute['),
|
|
212
|
-
(r'\(', Comment.Preproc, 'attribute('),
|
|
213
216
|
],
|
|
214
217
|
'attribute[': [
|
|
215
218
|
include('attribute_common'),
|
|
216
|
-
(r'\]
|
|
217
|
-
(r'[^"\]]+', Comment.Preproc),
|
|
218
|
-
],
|
|
219
|
-
'attribute(': [
|
|
220
|
-
include('attribute_common'),
|
|
221
|
-
(r'\);?', Comment.Preproc, '#pop'),
|
|
222
|
-
(r'[^")]+', Comment.Preproc),
|
|
219
|
+
(r'\]', Comment.Preproc, '#pop'),
|
|
220
|
+
(r'[^"\]\[]+', Comment.Preproc),
|
|
223
221
|
],
|
|
224
222
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.sas
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for SAS.
|
|
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.scdoc
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for scdoc, a simple man page generator.
|
|
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.scripting
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for scripting and embedded 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
|
|
|
@@ -169,9 +168,9 @@ class MoonScriptLexer(LuaLexer):
|
|
|
169
168
|
.. versionadded:: 1.5
|
|
170
169
|
"""
|
|
171
170
|
|
|
172
|
-
name =
|
|
173
|
-
aliases = [
|
|
174
|
-
filenames = [
|
|
171
|
+
name = 'MoonScript'
|
|
172
|
+
aliases = ['moonscript', 'moon']
|
|
173
|
+
filenames = ['*.moon']
|
|
175
174
|
mimetypes = ['text/x-moonscript', 'application/x-moonscript']
|
|
176
175
|
|
|
177
176
|
tokens = {
|
|
@@ -238,7 +237,7 @@ class ChaiscriptLexer(RegexLexer):
|
|
|
238
237
|
"""
|
|
239
238
|
|
|
240
239
|
name = 'ChaiScript'
|
|
241
|
-
aliases = ['
|
|
240
|
+
aliases = ['chaiscript', 'chai']
|
|
242
241
|
filenames = ['*.chai']
|
|
243
242
|
mimetypes = ['text/x-chaiscript', 'application/x-chaiscript']
|
|
244
243
|
|
|
@@ -283,7 +282,7 @@ class ChaiscriptLexer(RegexLexer):
|
|
|
283
282
|
(r'0x[0-9a-fA-F]+', Number.Hex),
|
|
284
283
|
(r'[0-9]+', Number.Integer),
|
|
285
284
|
(r'"', String.Double, 'dqstring'),
|
|
286
|
-
(r"'(\\\\|\\
|
|
285
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
287
286
|
],
|
|
288
287
|
'dqstring': [
|
|
289
288
|
(r'\$\{[^"}]+?\}', String.Interpol),
|
|
@@ -689,7 +688,7 @@ class AppleScriptLexer(RegexLexer):
|
|
|
689
688
|
(r'\b(%s)s?\b' % '|'.join(StudioClasses), Name.Builtin),
|
|
690
689
|
(r'\b(%s)\b' % '|'.join(StudioCommands), Name.Builtin),
|
|
691
690
|
(r'\b(%s)\b' % '|'.join(References), Name.Builtin),
|
|
692
|
-
(r'"(\\\\|\\
|
|
691
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
693
692
|
(r'\b(%s)\b' % Identifiers, Name.Variable),
|
|
694
693
|
(r'[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?', Number.Float),
|
|
695
694
|
(r'[-+]?\d+', Number.Integer),
|
|
@@ -833,7 +832,7 @@ class MOOCodeLexer(RegexLexer):
|
|
|
833
832
|
# Numbers
|
|
834
833
|
(r'(0|[1-9][0-9_]*)', Number.Integer),
|
|
835
834
|
# Strings
|
|
836
|
-
(r'"(\\\\|\\
|
|
835
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
|
837
836
|
# exceptions
|
|
838
837
|
(r'(E_PERM|E_DIV)', Name.Exception),
|
|
839
838
|
# db-refs
|
|
@@ -924,7 +923,7 @@ class HybrisLexer(RegexLexer):
|
|
|
924
923
|
'Runnable', 'CGI', 'ClientSocket', 'Socket', 'ServerSocket',
|
|
925
924
|
'File', 'Console', 'Directory', 'Exception'), suffix=r'\b'),
|
|
926
925
|
Keyword.Type),
|
|
927
|
-
(r'"(\\\\|\\
|
|
926
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String),
|
|
928
927
|
(r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char),
|
|
929
928
|
(r'(\.)([a-zA-Z_]\w*)',
|
|
930
929
|
bygroups(Operator, Name.Attribute)),
|
|
@@ -1237,9 +1236,9 @@ class MiniScriptLexer(RegexLexer):
|
|
|
1237
1236
|
.. versionadded:: 2.6
|
|
1238
1237
|
"""
|
|
1239
1238
|
|
|
1240
|
-
name =
|
|
1241
|
-
aliases = [
|
|
1242
|
-
filenames = [
|
|
1239
|
+
name = 'MiniScript'
|
|
1240
|
+
aliases = ['miniscript', 'ms']
|
|
1241
|
+
filenames = ['*.ms']
|
|
1243
1242
|
mimetypes = ['text/x-minicript', 'application/x-miniscript']
|
|
1244
1243
|
|
|
1245
1244
|
tokens = {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.sgf
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for Smart Game Format (sgf) file format.
|
|
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.shell
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for various shells.
|
|
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
|
|
|
@@ -57,7 +56,7 @@ class BashLexer(RegexLexer):
|
|
|
57
56
|
(r'\$', Text),
|
|
58
57
|
],
|
|
59
58
|
'basic': [
|
|
60
|
-
(r'\b(if|fi|else|while|do|done|for|then|return|function|case|'
|
|
59
|
+
(r'\b(if|fi|else|while|in|do|done|for|then|return|function|case|'
|
|
61
60
|
r'select|continue|until|esac|elif)(\s*)\b',
|
|
62
61
|
bygroups(Keyword, Text)),
|
|
63
62
|
(r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|'
|
|
@@ -169,10 +168,6 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
169
168
|
|
|
170
169
|
for match in line_re.finditer(text):
|
|
171
170
|
line = match.group()
|
|
172
|
-
if backslash_continuation:
|
|
173
|
-
curcode += line
|
|
174
|
-
backslash_continuation = curcode.endswith('\\\n')
|
|
175
|
-
continue
|
|
176
171
|
|
|
177
172
|
venv_match = self._venv.match(line)
|
|
178
173
|
if venv_match:
|
|
@@ -197,10 +192,13 @@ class ShellSessionBaseLexer(Lexer):
|
|
|
197
192
|
[(0, Generic.Prompt, m.group(1))]))
|
|
198
193
|
curcode += m.group(2)
|
|
199
194
|
backslash_continuation = curcode.endswith('\\\n')
|
|
200
|
-
elif
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
elif backslash_continuation:
|
|
196
|
+
if line.startswith(self._ps2):
|
|
197
|
+
insertions.append((len(curcode),
|
|
198
|
+
[(0, Generic.Prompt, line[:len(self._ps2)])]))
|
|
199
|
+
curcode += line[len(self._ps2):]
|
|
200
|
+
else:
|
|
201
|
+
curcode += line
|
|
204
202
|
backslash_continuation = curcode.endswith('\\\n')
|
|
205
203
|
else:
|
|
206
204
|
if insertions:
|
|
@@ -232,8 +230,8 @@ class BashSessionLexer(ShellSessionBaseLexer):
|
|
|
232
230
|
_innerLexerCls = BashLexer
|
|
233
231
|
_ps1rgx = re.compile(
|
|
234
232
|
r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
|
|
235
|
-
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%])(.*\n?)')
|
|
236
|
-
_ps2 = '>'
|
|
233
|
+
r'?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)')
|
|
234
|
+
_ps2 = '> '
|
|
237
235
|
|
|
238
236
|
|
|
239
237
|
class BatchLexer(RegexLexer):
|
|
@@ -243,7 +241,7 @@ class BatchLexer(RegexLexer):
|
|
|
243
241
|
.. versionadded:: 0.7
|
|
244
242
|
"""
|
|
245
243
|
name = 'Batchfile'
|
|
246
|
-
aliases = ['
|
|
244
|
+
aliases = ['batch', 'bat', 'dosbatch', 'winbatch']
|
|
247
245
|
filenames = ['*.bat', '*.cmd']
|
|
248
246
|
mimetypes = ['application/x-dos-batch']
|
|
249
247
|
|
|
@@ -657,7 +655,7 @@ class PowerShellLexer(RegexLexer):
|
|
|
657
655
|
.. versionadded:: 1.5
|
|
658
656
|
"""
|
|
659
657
|
name = 'PowerShell'
|
|
660
|
-
aliases = ['powershell', 'posh', 'ps1', 'psm1']
|
|
658
|
+
aliases = ['powershell', 'pwsh', 'posh', 'ps1', 'psm1']
|
|
661
659
|
filenames = ['*.ps1', '*.psm1']
|
|
662
660
|
mimetypes = ['text/x-powershell']
|
|
663
661
|
|
|
@@ -735,7 +733,7 @@ class PowerShellLexer(RegexLexer):
|
|
|
735
733
|
(r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant), # .net [type]s
|
|
736
734
|
(r'-[a-z_]\w*', Name),
|
|
737
735
|
(r'\w+', Name),
|
|
738
|
-
(r'[
|
|
736
|
+
(r'[.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation),
|
|
739
737
|
],
|
|
740
738
|
'child': [
|
|
741
739
|
(r'\)', Punctuation, '#pop'),
|
|
@@ -773,7 +771,7 @@ class PowerShellSessionLexer(ShellSessionBaseLexer):
|
|
|
773
771
|
"""
|
|
774
772
|
|
|
775
773
|
name = 'PowerShell Session'
|
|
776
|
-
aliases = ['ps1con']
|
|
774
|
+
aliases = ['pwsh-session', 'ps1con']
|
|
777
775
|
filenames = []
|
|
778
776
|
mimetypes = []
|
|
779
777
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.sieve
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
https://tools.ietf.org/html/rfc5429
|
|
15
14
|
https://tools.ietf.org/html/rfc8580
|
|
16
15
|
|
|
17
|
-
:copyright: Copyright 2006-
|
|
16
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
18
17
|
:license: BSD, see LICENSE for details.
|
|
19
18
|
"""
|
|
20
19
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.slash
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -6,7 +5,7 @@
|
|
|
6
5
|
Lexer for the `Slash <https://github.com/arturadib/Slash-A>`_ programming
|
|
7
6
|
language.
|
|
8
7
|
|
|
9
|
-
:copyright: Copyright 2006-
|
|
8
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
10
9
|
:license: BSD, see LICENSE for details.
|
|
11
10
|
"""
|
|
12
11
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.smalltalk
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for Smalltalk 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
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pygments.lexers.smithy
|
|
3
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
4
|
+
|
|
5
|
+
Lexers for the Smithy IDL.
|
|
6
|
+
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
8
|
+
:license: BSD, see LICENSE for details.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import re
|
|
12
|
+
|
|
13
|
+
from pygments.lexer import RegexLexer, bygroups, words
|
|
14
|
+
from pygments.token import Text, Comment, Keyword, Name, String, \
|
|
15
|
+
Number, Whitespace, Punctuation
|
|
16
|
+
|
|
17
|
+
__all__ = ['SmithyLexer']
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SmithyLexer(RegexLexer):
|
|
21
|
+
"""
|
|
22
|
+
For Smithy IDL
|
|
23
|
+
|
|
24
|
+
.. versionadded:: 2.10
|
|
25
|
+
"""
|
|
26
|
+
name = 'Smithy'
|
|
27
|
+
filenames = ['*.smithy']
|
|
28
|
+
aliases = ['smithy']
|
|
29
|
+
|
|
30
|
+
flags = re.MULTILINE | re.UNICODE
|
|
31
|
+
unquoted = r'[A-Za-z0-9_\.#$-]+'
|
|
32
|
+
identifier = r"[A-Za-z0-9_\.#$-]+"
|
|
33
|
+
|
|
34
|
+
simple_shapes = (
|
|
35
|
+
'use', 'byte', 'short', 'integer', 'long', 'float', 'document',
|
|
36
|
+
'double', 'bigInteger', 'bigDecimal', 'boolean', 'blob', 'string',
|
|
37
|
+
'timestamp',
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
aggregate_shapes = (
|
|
41
|
+
'apply', 'list', 'map', 'set', 'structure', 'union', 'resource',
|
|
42
|
+
'operation', 'service', 'trait'
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
tokens = {
|
|
46
|
+
'root': [
|
|
47
|
+
(r'///.*$', Comment.Multiline),
|
|
48
|
+
(r'//.*$', Comment),
|
|
49
|
+
(r'@[0-9a-zA-Z\.#-]*', Name.Decorator),
|
|
50
|
+
(r'(=)', Name.Decorator),
|
|
51
|
+
(r'^(\$version)(:)(.+)',
|
|
52
|
+
bygroups(Keyword.Declaration, Name.Decorator, Name.Class)),
|
|
53
|
+
(r'^(namespace)(\s+' + identifier + r')\b',
|
|
54
|
+
bygroups(Keyword.Declaration, Name.Class)),
|
|
55
|
+
(words(simple_shapes,
|
|
56
|
+
prefix=r'^', suffix=r'(\s+' + identifier + r')\b'),
|
|
57
|
+
bygroups(Keyword.Declaration, Name.Class)),
|
|
58
|
+
(words(aggregate_shapes,
|
|
59
|
+
prefix=r'^', suffix=r'(\s+' + identifier + r')'),
|
|
60
|
+
bygroups(Keyword.Declaration, Name.Class)),
|
|
61
|
+
(r'^(metadata)(\s+.+)(\s*)(=)',
|
|
62
|
+
bygroups(Keyword.Declaration, Name.Class, Whitespace, Name.Decorator)),
|
|
63
|
+
(r"(true|false|null)", Keyword.Constant),
|
|
64
|
+
(r"(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)", Number),
|
|
65
|
+
(identifier + ":", Name.Label),
|
|
66
|
+
(identifier, Name.Variable.Class),
|
|
67
|
+
(r'\[', Text, "#push"),
|
|
68
|
+
(r'\]', Text, "#pop"),
|
|
69
|
+
(r'\(', Text, "#push"),
|
|
70
|
+
(r'\)', Text, "#pop"),
|
|
71
|
+
(r'\{', Text, "#push"),
|
|
72
|
+
(r'\}', Text, "#pop"),
|
|
73
|
+
(r'"{3}(\\\\|\n|\\")*"{3}', String.Doc),
|
|
74
|
+
(r'"(\\\\|\n|\\"|[^"])*"', String.Double),
|
|
75
|
+
(r"'(\\\\|\n|\\'|[^'])*'", String.Single),
|
|
76
|
+
(r'[:,]+', Punctuation),
|
|
77
|
+
(r'\s+', Whitespace),
|
|
78
|
+
]
|
|
79
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.smv
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for the SMV 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
|
|
|
@@ -69,7 +68,7 @@ class NuSMVLexer(RegexLexer):
|
|
|
69
68
|
(r'\-?\d+\b', Number.Integer),
|
|
70
69
|
(r'0[su][bB]\d*_[01_]+', Number.Bin),
|
|
71
70
|
(r'0[su][oO]\d*_[0-7_]+', Number.Oct),
|
|
72
|
-
(r'0[su][dD]\d*_[\d_]+', Number.
|
|
71
|
+
(r'0[su][dD]\d*_[\d_]+', Number.Decimal),
|
|
73
72
|
(r'0[su][hH]\d*_[\da-fA-F_]+', Number.Hex),
|
|
74
73
|
|
|
75
74
|
# Whitespace, punctuation and the rest
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.snobol
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for the SNOBOL language.
|
|
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.solidity
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for Solidity.
|
|
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,23 +1,22 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.special
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Special lexers.
|
|
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
|
|
|
11
|
+
import ast
|
|
12
12
|
import re
|
|
13
|
-
from io import BytesIO
|
|
14
13
|
|
|
15
14
|
from pygments.lexer import Lexer
|
|
16
|
-
from pygments.token import Token, Error, Text
|
|
15
|
+
from pygments.token import Token, Error, Text, Generic
|
|
17
16
|
from pygments.util import get_choice_opt
|
|
18
17
|
|
|
19
18
|
|
|
20
|
-
__all__ = ['TextLexer', 'RawTokenLexer']
|
|
19
|
+
__all__ = ['TextLexer', 'OutputLexer', 'RawTokenLexer']
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
class TextLexer(Lexer):
|
|
@@ -37,16 +36,27 @@ class TextLexer(Lexer):
|
|
|
37
36
|
return TextLexer.priority
|
|
38
37
|
|
|
39
38
|
|
|
39
|
+
class OutputLexer(Lexer):
|
|
40
|
+
"""
|
|
41
|
+
Simple lexer that highlights everything as ``Token.Generic.Output``.
|
|
42
|
+
|
|
43
|
+
.. versionadded:: 2.10
|
|
44
|
+
"""
|
|
45
|
+
name = 'Text output'
|
|
46
|
+
aliases = ['output']
|
|
47
|
+
|
|
48
|
+
def get_tokens_unprocessed(self, text):
|
|
49
|
+
yield 0, Generic.Output, text
|
|
50
|
+
|
|
51
|
+
|
|
40
52
|
_ttype_cache = {}
|
|
41
53
|
|
|
42
|
-
line_re = re.compile(
|
|
54
|
+
line_re = re.compile('.*?\n')
|
|
43
55
|
|
|
44
56
|
|
|
45
57
|
class RawTokenLexer(Lexer):
|
|
46
58
|
"""
|
|
47
|
-
Recreate a token stream formatted with the `RawTokenFormatter`.
|
|
48
|
-
lexer raises exceptions during parsing if the token stream in the
|
|
49
|
-
file is malformed.
|
|
59
|
+
Recreate a token stream formatted with the `RawTokenFormatter`.
|
|
50
60
|
|
|
51
61
|
Additional options accepted:
|
|
52
62
|
|
|
@@ -55,7 +65,7 @@ class RawTokenLexer(Lexer):
|
|
|
55
65
|
the given compression algorithm before lexing (default: ``""``).
|
|
56
66
|
"""
|
|
57
67
|
name = 'Raw token data'
|
|
58
|
-
aliases = [
|
|
68
|
+
aliases = []
|
|
59
69
|
filenames = []
|
|
60
70
|
mimetypes = ['application/x-pygments-tokens']
|
|
61
71
|
|
|
@@ -65,20 +75,23 @@ class RawTokenLexer(Lexer):
|
|
|
65
75
|
Lexer.__init__(self, **options)
|
|
66
76
|
|
|
67
77
|
def get_tokens(self, text):
|
|
68
|
-
if
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
if self.compress:
|
|
79
|
+
if isinstance(text, str):
|
|
80
|
+
text = text.encode('latin1')
|
|
81
|
+
try:
|
|
82
|
+
if self.compress == 'gz':
|
|
83
|
+
import gzip
|
|
84
|
+
text = gzip.decompress(text)
|
|
85
|
+
elif self.compress == 'bz2':
|
|
86
|
+
import bz2
|
|
87
|
+
text = bz2.decompress(text)
|
|
88
|
+
except OSError:
|
|
89
|
+
yield Error, text.decode('latin1')
|
|
90
|
+
if isinstance(text, bytes):
|
|
91
|
+
text = text.decode('latin1')
|
|
92
|
+
|
|
93
|
+
# do not call Lexer.get_tokens() because stripping is not optional.
|
|
94
|
+
text = text.strip('\n') + '\n'
|
|
82
95
|
for i, t, v in self.get_tokens_unprocessed(text):
|
|
83
96
|
yield t, v
|
|
84
97
|
|
|
@@ -86,11 +99,7 @@ class RawTokenLexer(Lexer):
|
|
|
86
99
|
length = 0
|
|
87
100
|
for match in line_re.finditer(text):
|
|
88
101
|
try:
|
|
89
|
-
ttypestr, val = match.group().split(
|
|
90
|
-
except ValueError:
|
|
91
|
-
val = match.group().decode('ascii', 'replace')
|
|
92
|
-
ttype = Error
|
|
93
|
-
else:
|
|
102
|
+
ttypestr, val = match.group().rstrip().split('\t', 1)
|
|
94
103
|
ttype = _ttype_cache.get(ttypestr)
|
|
95
104
|
if not ttype:
|
|
96
105
|
ttype = Token
|
|
@@ -100,6 +109,11 @@ class RawTokenLexer(Lexer):
|
|
|
100
109
|
raise ValueError('malformed token name')
|
|
101
110
|
ttype = getattr(ttype, ttype_)
|
|
102
111
|
_ttype_cache[ttypestr] = ttype
|
|
103
|
-
val =
|
|
112
|
+
val = ast.literal_eval(val)
|
|
113
|
+
if not isinstance(val, str):
|
|
114
|
+
raise ValueError('expected str')
|
|
115
|
+
except (SyntaxError, ValueError):
|
|
116
|
+
val = match.group()
|
|
117
|
+
ttype = Error
|
|
104
118
|
yield length, ttype, val
|
|
105
119
|
length += len(val)
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.sql
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
@@ -34,7 +33,7 @@
|
|
|
34
33
|
The ``tests/examplefiles`` contains a few test files with data to be
|
|
35
34
|
parsed by these lexers.
|
|
36
35
|
|
|
37
|
-
:copyright: Copyright 2006-
|
|
36
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
38
37
|
:license: BSD, see LICENSE for details.
|
|
39
38
|
"""
|
|
40
39
|
|
|
@@ -102,8 +101,7 @@ def language_callback(lexer, match):
|
|
|
102
101
|
yield (match.start(3), String, match.group(3))
|
|
103
102
|
# 4 = string contents
|
|
104
103
|
if lx:
|
|
105
|
-
|
|
106
|
-
yield x
|
|
104
|
+
yield from lx.get_tokens_unprocessed(match.group(4))
|
|
107
105
|
else:
|
|
108
106
|
yield (match.start(4), String, match.group(4))
|
|
109
107
|
# 5 = $, 6 = delimiter, 7 = $
|
|
@@ -397,14 +395,14 @@ class SqlLexer(RegexLexer):
|
|
|
397
395
|
'CHARACTERISTICS', 'CHARACTER_LENGTH', 'CHARACTER_SET_CATALOG',
|
|
398
396
|
'CHARACTER_SET_NAME', 'CHARACTER_SET_SCHEMA', 'CHAR_LENGTH', 'CHECK',
|
|
399
397
|
'CHECKED', 'CHECKPOINT', 'CLASS', 'CLASS_ORIGIN', 'CLOB', 'CLOSE',
|
|
400
|
-
'CLUSTER', '
|
|
398
|
+
'CLUSTER', 'COALESCE', 'COBOL', 'COLLATE', 'COLLATION',
|
|
401
399
|
'COLLATION_CATALOG', 'COLLATION_NAME', 'COLLATION_SCHEMA', 'COLUMN',
|
|
402
400
|
'COLUMN_NAME', 'COMMAND_FUNCTION', 'COMMAND_FUNCTION_CODE', 'COMMENT',
|
|
403
401
|
'COMMIT', 'COMMITTED', 'COMPLETION', 'CONDITION_NUMBER', 'CONNECT',
|
|
404
402
|
'CONNECTION', 'CONNECTION_NAME', 'CONSTRAINT', 'CONSTRAINTS',
|
|
405
403
|
'CONSTRAINT_CATALOG', 'CONSTRAINT_NAME', 'CONSTRAINT_SCHEMA',
|
|
406
404
|
'CONSTRUCTOR', 'CONTAINS', 'CONTINUE', 'CONVERSION', 'CONVERT',
|
|
407
|
-
'COPY', '
|
|
405
|
+
'COPY', 'CORRESPONDING', 'COUNT', 'CREATE', 'CREATEDB', 'CREATEUSER',
|
|
408
406
|
'CROSS', 'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH',
|
|
409
407
|
'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
|
|
410
408
|
'CURSOR', 'CURSOR_NAME', 'CYCLE', 'DATA', 'DATABASE',
|
|
@@ -440,9 +438,9 @@ class SqlLexer(RegexLexer):
|
|
|
440
438
|
'OPEN', 'OPERATION', 'OPERATOR', 'OPTION', 'OPTIONS', 'OR', 'ORDER',
|
|
441
439
|
'ORDINALITY', 'OUT', 'OUTER', 'OUTPUT', 'OVERLAPS', 'OVERLAY',
|
|
442
440
|
'OVERRIDING', 'OWNER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARAMETER_MODE',
|
|
443
|
-
'
|
|
441
|
+
'PARAMETER_NAME', 'PARAMETER_ORDINAL_POSITION',
|
|
444
442
|
'PARAMETER_SPECIFIC_CATALOG', 'PARAMETER_SPECIFIC_NAME',
|
|
445
|
-
'
|
|
443
|
+
'PARAMETER_SPECIFIC_SCHEMA', 'PARTIAL', 'PASCAL', 'PENDANT', 'PERIOD', 'PLACING',
|
|
446
444
|
'PLI', 'POSITION', 'POSTFIX', 'PRECEEDS', 'PRECISION', 'PREFIX', 'PREORDER',
|
|
447
445
|
'PREPARE', 'PRESERVE', 'PRIMARY', 'PRIOR', 'PRIVILEGES', 'PROCEDURAL',
|
|
448
446
|
'PROCEDURE', 'PUBLIC', 'READ', 'READS', 'RECHECK', 'RECURSIVE', 'REF',
|
|
@@ -462,8 +460,8 @@ class SqlLexer(RegexLexer):
|
|
|
462
460
|
'SUBLIST', 'SUBSTRING', 'SUCCEEDS', 'SUM', 'SYMMETRIC', 'SYSID', 'SYSTEM',
|
|
463
461
|
'SYSTEM_USER', 'TABLE', 'TABLE_NAME', ' TEMP', 'TEMPLATE', 'TEMPORARY',
|
|
464
462
|
'TERMINATE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR',
|
|
465
|
-
'TIMEZONE_MINUTE', 'TO', 'TOAST', 'TRAILING', '
|
|
466
|
-
'TRANSACTIONS_COMMITTED', 'TRANSACTIONS_ROLLED_BACK', '
|
|
463
|
+
'TIMEZONE_MINUTE', 'TO', 'TOAST', 'TRAILING', 'TRANSACTION',
|
|
464
|
+
'TRANSACTIONS_COMMITTED', 'TRANSACTIONS_ROLLED_BACK', 'TRANSACTION_ACTIVE',
|
|
467
465
|
'TRANSFORM', 'TRANSFORMS', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER',
|
|
468
466
|
'TRIGGER_CATALOG', 'TRIGGER_NAME', 'TRIGGER_SCHEMA', 'TRIM', 'TRUE',
|
|
469
467
|
'TRUNCATE', 'TRUSTED', 'TYPE', 'UNCOMMITTED', 'UNDER', 'UNENCRYPTED',
|
|
@@ -497,9 +495,6 @@ class SqlLexer(RegexLexer):
|
|
|
497
495
|
]
|
|
498
496
|
}
|
|
499
497
|
|
|
500
|
-
def analyse_text(text):
|
|
501
|
-
return 0.01
|
|
502
|
-
|
|
503
498
|
|
|
504
499
|
class TransactSqlLexer(RegexLexer):
|
|
505
500
|
"""
|