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
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pygments.lexers.meson
|
|
3
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
4
|
+
|
|
5
|
+
Pygments lexer for the Meson build system
|
|
6
|
+
|
|
7
|
+
:copyright: Copyright 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 (
|
|
14
|
+
RegexLexer,
|
|
15
|
+
words,
|
|
16
|
+
include,
|
|
17
|
+
)
|
|
18
|
+
from pygments.token import (
|
|
19
|
+
Comment,
|
|
20
|
+
Name,
|
|
21
|
+
Number,
|
|
22
|
+
Punctuation,
|
|
23
|
+
Operator,
|
|
24
|
+
Keyword,
|
|
25
|
+
String,
|
|
26
|
+
Whitespace,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
__all__ = ['MesonLexer']
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class MesonLexer(RegexLexer):
|
|
33
|
+
"""
|
|
34
|
+
`meson <https://mesonbuild.com/>`_ language lexer.
|
|
35
|
+
The grammar definition use to transcribe the syntax was retrieved from
|
|
36
|
+
https://mesonbuild.com/Syntax.html#grammar for version 0.58
|
|
37
|
+
Some of those definitions are improperly transcribed so the Meson++
|
|
38
|
+
implementation was also checked: https://github.com/dcbaker/meson-plus-plus
|
|
39
|
+
|
|
40
|
+
.. versionadded:: 2.10
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
# TODO String interpolation @VARNAME@ inner matches
|
|
44
|
+
# TODO keyword_arg: value inner matches
|
|
45
|
+
|
|
46
|
+
name = 'Meson'
|
|
47
|
+
aliases = ['meson', 'meson.build']
|
|
48
|
+
filenames = ['meson.build', 'meson_options.txt']
|
|
49
|
+
mimetypes = ['text/x-meson']
|
|
50
|
+
|
|
51
|
+
flags = re.MULTILINE | re.UNICODE
|
|
52
|
+
|
|
53
|
+
tokens = {
|
|
54
|
+
'root': [
|
|
55
|
+
(r'#.*?$', Comment),
|
|
56
|
+
(r"'''.*'''", String.Single),
|
|
57
|
+
(r'[1-9][0-9]*', Number.Integer),
|
|
58
|
+
(r'0o[0-7]+', Number.Oct),
|
|
59
|
+
(r'0x[a-fA-F0-9]+', Number.Hex),
|
|
60
|
+
include('string'),
|
|
61
|
+
include('keywords'),
|
|
62
|
+
include('expr'),
|
|
63
|
+
(r'[a-zA-Z_][a-zA-Z_0-9]*', Name),
|
|
64
|
+
(r'\s+', Whitespace),
|
|
65
|
+
],
|
|
66
|
+
'string': [
|
|
67
|
+
(r"[']{3}([']{0,2}([^\\']|\\(.|\n)))*[']{3}", String),
|
|
68
|
+
(r"'.*?(?<!\\)(\\\\)*?'", String),
|
|
69
|
+
],
|
|
70
|
+
'keywords': [
|
|
71
|
+
(words((
|
|
72
|
+
'if',
|
|
73
|
+
'elif',
|
|
74
|
+
'else',
|
|
75
|
+
'endif',
|
|
76
|
+
'foreach',
|
|
77
|
+
'endforeach',
|
|
78
|
+
'break',
|
|
79
|
+
'continue',
|
|
80
|
+
),
|
|
81
|
+
suffix=r'\b'), Keyword),
|
|
82
|
+
],
|
|
83
|
+
'expr': [
|
|
84
|
+
(r'(in|and|or|not)\b', Operator.Word),
|
|
85
|
+
(r'(\*=|/=|%=|\+]=|-=|==|!=|\+|-|=)', Operator),
|
|
86
|
+
(r'[\[\]{}:().,?]', Punctuation),
|
|
87
|
+
(words(('true', 'false'), suffix=r'\b'), Keyword.Constant),
|
|
88
|
+
include('builtins'),
|
|
89
|
+
(words((
|
|
90
|
+
'meson',
|
|
91
|
+
'build_machine',
|
|
92
|
+
'host_machine',
|
|
93
|
+
'target_machine',
|
|
94
|
+
),
|
|
95
|
+
suffix=r'\b'), Name.Variable.Magic),
|
|
96
|
+
],
|
|
97
|
+
'builtins': [
|
|
98
|
+
# This list was extracted from the v0.58 reference manual
|
|
99
|
+
(words((
|
|
100
|
+
'add_global_arguments',
|
|
101
|
+
'add_global_link_arguments',
|
|
102
|
+
'add_languages',
|
|
103
|
+
'add_project_arguments',
|
|
104
|
+
'add_project_link_arguments',
|
|
105
|
+
'add_test_setup',
|
|
106
|
+
'assert',
|
|
107
|
+
'benchmark',
|
|
108
|
+
'both_libraries',
|
|
109
|
+
'build_target',
|
|
110
|
+
'configuration_data',
|
|
111
|
+
'configure_file',
|
|
112
|
+
'custom_target',
|
|
113
|
+
'declare_dependency',
|
|
114
|
+
'dependency',
|
|
115
|
+
'disabler',
|
|
116
|
+
'environment',
|
|
117
|
+
'error',
|
|
118
|
+
'executable',
|
|
119
|
+
'files',
|
|
120
|
+
'find_library',
|
|
121
|
+
'find_program',
|
|
122
|
+
'generator',
|
|
123
|
+
'get_option',
|
|
124
|
+
'get_variable',
|
|
125
|
+
'include_directories',
|
|
126
|
+
'install_data',
|
|
127
|
+
'install_headers',
|
|
128
|
+
'install_man',
|
|
129
|
+
'install_subdir',
|
|
130
|
+
'is_disabler',
|
|
131
|
+
'is_variable',
|
|
132
|
+
'jar',
|
|
133
|
+
'join_paths',
|
|
134
|
+
'library',
|
|
135
|
+
'message',
|
|
136
|
+
'project',
|
|
137
|
+
'range',
|
|
138
|
+
'run_command',
|
|
139
|
+
'set_variable',
|
|
140
|
+
'shared_library',
|
|
141
|
+
'shared_module',
|
|
142
|
+
'static_library',
|
|
143
|
+
'subdir',
|
|
144
|
+
'subdir_done',
|
|
145
|
+
'subproject',
|
|
146
|
+
'summary',
|
|
147
|
+
'test',
|
|
148
|
+
'vcs_tag',
|
|
149
|
+
'warning',
|
|
150
|
+
),
|
|
151
|
+
prefix=r'(?<!\.)',
|
|
152
|
+
suffix=r'\b'), Name.Builtin),
|
|
153
|
+
(r'(?<!\.)import\b', Name.Namespace),
|
|
154
|
+
],
|
|
155
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.mime
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for Multipurpose Internet Mail Extensions (MIME) data.
|
|
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
|
|
|
@@ -22,20 +21,20 @@ __all__ = ["MIMELexer"]
|
|
|
22
21
|
class MIMELexer(RegexLexer):
|
|
23
22
|
"""
|
|
24
23
|
Lexer for Multipurpose Internet Mail Extensions (MIME) data. This lexer is
|
|
25
|
-
designed to process
|
|
24
|
+
designed to process nested multipart data.
|
|
26
25
|
|
|
27
26
|
It assumes that the given data contains both header and body (and is
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
split at an empty line). If no valid header is found, then the entire data
|
|
28
|
+
will be treated as body.
|
|
30
29
|
|
|
31
30
|
Additional options accepted:
|
|
32
31
|
|
|
33
32
|
`MIME-max-level`
|
|
34
|
-
Max
|
|
33
|
+
Max recursion level for nested MIME structure. Any negative number
|
|
35
34
|
would treated as unlimited. (default: -1)
|
|
36
35
|
|
|
37
36
|
`Content-Type`
|
|
38
|
-
Treat the data as specific content type. Useful when header is
|
|
37
|
+
Treat the data as a specific content type. Useful when header is
|
|
39
38
|
missing, or this lexer would try to parse from header. (default:
|
|
40
39
|
`text/plain`)
|
|
41
40
|
|
|
@@ -45,7 +44,7 @@ class MIMELexer(RegexLexer):
|
|
|
45
44
|
would try to parse from header by default. (default: None)
|
|
46
45
|
|
|
47
46
|
`Content-Transfer-Encoding`
|
|
48
|
-
Treat the data as specific encoding. Or this lexer would try to parse
|
|
47
|
+
Treat the data as a specific encoding. Or this lexer would try to parse
|
|
49
48
|
from header by default. (default: None)
|
|
50
49
|
|
|
51
50
|
.. versionadded:: 2.5
|
|
@@ -64,21 +63,6 @@ class MIMELexer(RegexLexer):
|
|
|
64
63
|
self.content_type = options.get("Content_Type", "text/plain")
|
|
65
64
|
self.max_nested_level = get_int_opt(options, "MIME-max-level", -1)
|
|
66
65
|
|
|
67
|
-
def analyse_text(text):
|
|
68
|
-
try:
|
|
69
|
-
header, body = text.strip().split("\n\n", 1)
|
|
70
|
-
if not body.strip():
|
|
71
|
-
return 0.1
|
|
72
|
-
|
|
73
|
-
invalid_headers = MIMELexer.tokens["header"].sub("", header)
|
|
74
|
-
if invalid_headers.strip():
|
|
75
|
-
return 0.1
|
|
76
|
-
else:
|
|
77
|
-
return 1
|
|
78
|
-
|
|
79
|
-
except ValueError:
|
|
80
|
-
return 0.1
|
|
81
|
-
|
|
82
66
|
def get_header_tokens(self, match):
|
|
83
67
|
field = match.group(1)
|
|
84
68
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.ml
|
|
4
3
|
~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for ML family 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
|
|
|
@@ -142,7 +141,7 @@ class SMLLexer(RegexLexer):
|
|
|
142
141
|
(r'#\s+(%s)' % symbolicid_re, Name.Label),
|
|
143
142
|
# Some reserved words trigger a special, local lexer state change
|
|
144
143
|
(r'\b(datatype|abstype)\b(?!\')', Keyword.Reserved, 'dname'),
|
|
145
|
-
(r'
|
|
144
|
+
(r'\b(exception)\b(?!\')', Keyword.Reserved, 'ename'),
|
|
146
145
|
(r'\b(functor|include|open|signature|structure)\b(?!\')',
|
|
147
146
|
Keyword.Reserved, 'sname'),
|
|
148
147
|
(r'\b(type|eqtype)\b(?!\')', Keyword.Reserved, 'tname'),
|
|
@@ -315,15 +314,14 @@ class SMLLexer(RegexLexer):
|
|
|
315
314
|
'ename': [
|
|
316
315
|
include('whitespace'),
|
|
317
316
|
|
|
318
|
-
(r'(
|
|
317
|
+
(r'(and\b)(\s+)(%s)' % alphanumid_re,
|
|
319
318
|
bygroups(Keyword.Reserved, Text, Name.Class)),
|
|
320
|
-
(r'(
|
|
319
|
+
(r'(and\b)(\s*)(%s)' % symbolicid_re,
|
|
321
320
|
bygroups(Keyword.Reserved, Text, Name.Class)),
|
|
322
321
|
(r'\b(of)\b(?!\')', Keyword.Reserved),
|
|
322
|
+
(r'(%s)|(%s)' % (alphanumid_re, symbolicid_re), Name.Class),
|
|
323
323
|
|
|
324
|
-
|
|
325
|
-
include('core'),
|
|
326
|
-
(r'\S+', Error),
|
|
324
|
+
default('#pop'),
|
|
327
325
|
],
|
|
328
326
|
|
|
329
327
|
'datcon': [
|
|
@@ -445,6 +443,7 @@ class OcamlLexer(RegexLexer):
|
|
|
445
443
|
],
|
|
446
444
|
}
|
|
447
445
|
|
|
446
|
+
|
|
448
447
|
class OpaLexer(RegexLexer):
|
|
449
448
|
"""
|
|
450
449
|
Lexer for the Opa language (http://opalang.org).
|
|
@@ -776,7 +775,7 @@ class ReasonLexer(RegexLexer):
|
|
|
776
775
|
"""
|
|
777
776
|
|
|
778
777
|
name = 'ReasonML'
|
|
779
|
-
aliases = ['
|
|
778
|
+
aliases = ['reasonml', 'reason']
|
|
780
779
|
filenames = ['*.re', '*.rei']
|
|
781
780
|
mimetypes = ['text/x-reasonml']
|
|
782
781
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.modeling
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for modeling 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
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.modula2
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Multi-Dialect Lexer for Modula-2.
|
|
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
|
|
|
@@ -228,8 +227,8 @@ class Modula2Lexer(RegexLexer):
|
|
|
228
227
|
(r'[0-9A-F]+H', Number.Hex),
|
|
229
228
|
],
|
|
230
229
|
'string_literals': [
|
|
231
|
-
(r"
|
|
232
|
-
(r'
|
|
230
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
231
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
233
232
|
],
|
|
234
233
|
'digraph_operators': [
|
|
235
234
|
# Dot Product Operator
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.monte
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for the Monte programming 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,4 +1,3 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.mosel
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -6,7 +5,7 @@
|
|
|
6
5
|
Lexers for the mosel language.
|
|
7
6
|
http://www.fico.com/en/products/fico-xpress-optimization
|
|
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.ncl
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for NCAR Command 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.nimrod
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for the Nim language (formerly known as Nimrod).
|
|
7
6
|
|
|
8
|
-
:copyright: Copyright 2006-
|
|
7
|
+
:copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
|
|
9
8
|
:license: BSD, see LICENSE for details.
|
|
10
9
|
"""
|
|
11
10
|
|
|
@@ -26,7 +25,7 @@ class NimrodLexer(RegexLexer):
|
|
|
26
25
|
"""
|
|
27
26
|
|
|
28
27
|
name = 'Nimrod'
|
|
29
|
-
aliases = ['
|
|
28
|
+
aliases = ['nimrod', 'nim']
|
|
30
29
|
filenames = ['*.nim', '*.nimrod']
|
|
31
30
|
mimetypes = ['text/x-nim']
|
|
32
31
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.nit
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for the Nit 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.nix
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for the NixOS Nix 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.oberon
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for Oberon family 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
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.objective
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for Objective-C family 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
|
|
|
@@ -261,11 +260,11 @@ class LogosLexer(ObjectiveCppLexer):
|
|
|
261
260
|
'logos_classname'),
|
|
262
261
|
(r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)',
|
|
263
262
|
bygroups(Keyword, Text, Name.Class)),
|
|
264
|
-
(r'(%config)(\s*\(\s*)(\w+)(\s
|
|
263
|
+
(r'(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)',
|
|
265
264
|
bygroups(Keyword, Text, Name.Variable, Text, String, Text)),
|
|
266
265
|
(r'(%ctor)(\s*)(\{)', bygroups(Keyword, Text, Punctuation),
|
|
267
266
|
'function'),
|
|
268
|
-
(r'(%new)(\s*)(\()(
|
|
267
|
+
(r'(%new)(\s*)(\()(.*?)(\))',
|
|
269
268
|
bygroups(Keyword, Text, Keyword, String, Keyword)),
|
|
270
269
|
(r'(\s*)(%end)(\s*)', bygroups(Text, Keyword, Text)),
|
|
271
270
|
inherit,
|
|
@@ -413,7 +412,7 @@ class SwiftLexer(RegexLexer):
|
|
|
413
412
|
],
|
|
414
413
|
'keywords': [
|
|
415
414
|
(words((
|
|
416
|
-
'as', 'break', 'case', 'catch', 'continue', 'default', 'defer',
|
|
415
|
+
'as', 'async', 'await', 'break', 'case', 'catch', 'continue', 'default', 'defer',
|
|
417
416
|
'do', 'else', 'fallthrough', 'for', 'guard', 'if', 'in', 'is',
|
|
418
417
|
'repeat', 'return', '#selector', 'switch', 'throw', 'try',
|
|
419
418
|
'where', 'while'), suffix=r'\b'),
|
|
@@ -441,8 +440,8 @@ class SwiftLexer(RegexLexer):
|
|
|
441
440
|
(r'(var|let)(\s+)([a-zA-Z_]\w*)', bygroups(Keyword.Declaration,
|
|
442
441
|
Text, Name.Variable)),
|
|
443
442
|
(words((
|
|
444
|
-
'class', 'deinit', 'enum', 'extension', 'func', 'import',
|
|
445
|
-
'internal', 'let', 'operator', 'private', 'protocol', 'public',
|
|
443
|
+
'actor', 'associatedtype', 'class', 'deinit', 'enum', 'extension', 'func', 'import',
|
|
444
|
+
'init', 'internal', 'let', 'operator', 'private', 'protocol', 'public',
|
|
446
445
|
'static', 'struct', 'subscript', 'typealias', 'var'), suffix=r'\b'),
|
|
447
446
|
Keyword.Declaration)
|
|
448
447
|
],
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
1
|
"""
|
|
3
2
|
pygments.lexers.ooc
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for the Ooc 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.other
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Just export lexer classes previously contained in this module.
|
|
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.parasail
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexer for ParaSail.
|
|
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.parsers
|
|
4
3
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
4
|
|
|
6
5
|
Lexers for parser generators.
|
|
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
|
|
|
@@ -64,10 +63,10 @@ class RagelLexer(RegexLexer):
|
|
|
64
63
|
(r'[+-]?[0-9]+', Number.Integer),
|
|
65
64
|
],
|
|
66
65
|
'literals': [
|
|
67
|
-
(r'"(\\\\|\\
|
|
68
|
-
(r"'(\\\\|\\
|
|
69
|
-
(r'\[(
|
|
70
|
-
(r'/(?!\*)(
|
|
66
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
67
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
68
|
+
(r'\[(\\\\|\\[^\\]|[^\\\]])*\]', String), # square bracket literals
|
|
69
|
+
(r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/', String.Regex), # regular expressions
|
|
71
70
|
],
|
|
72
71
|
'identifiers': [
|
|
73
72
|
(r'[a-zA-Z_]\w*', Name.Variable),
|
|
@@ -106,15 +105,15 @@ class RagelLexer(RegexLexer):
|
|
|
106
105
|
r'[^\\]\\[{}]', # allow escaped { or }
|
|
107
106
|
|
|
108
107
|
# strings and comments may safely contain unsafe characters
|
|
109
|
-
r'"(\\\\|\\
|
|
110
|
-
r"'(\\\\|\\
|
|
108
|
+
r'"(\\\\|\\[^\\]|[^"\\])*"',
|
|
109
|
+
r"'(\\\\|\\[^\\]|[^'\\])*'",
|
|
111
110
|
r'//.*$\n?', # single line comment
|
|
112
111
|
r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
|
|
113
112
|
r'\#.*$\n?', # ruby comment
|
|
114
113
|
|
|
115
114
|
# regular expression: There's no reason for it to start
|
|
116
115
|
# with a * and this stops confusion with comments.
|
|
117
|
-
r'/(?!\*)(
|
|
116
|
+
r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
|
|
118
117
|
|
|
119
118
|
# / is safe now that we've handled regex and javadoc comments
|
|
120
119
|
r'/',
|
|
@@ -147,12 +146,12 @@ class RagelEmbeddedLexer(RegexLexer):
|
|
|
147
146
|
r'%(?=[^%]|$)', # a single % sign is okay, just not 2 of them
|
|
148
147
|
|
|
149
148
|
# strings and comments may safely contain unsafe characters
|
|
150
|
-
r'"(\\\\|\\
|
|
151
|
-
r"'(\\\\|\\
|
|
149
|
+
r'"(\\\\|\\[^\\]|[^"\\])*"',
|
|
150
|
+
r"'(\\\\|\\[^\\]|[^'\\])*'",
|
|
152
151
|
r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
|
|
153
152
|
r'//.*$\n?', # single line comment
|
|
154
153
|
r'\#.*$\n?', # ruby/ragel comment
|
|
155
|
-
r'/(?!\*)(
|
|
154
|
+
r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/', # regular expression
|
|
156
155
|
|
|
157
156
|
# / is safe now that we've handled regex and javadoc comments
|
|
158
157
|
r'/',
|
|
@@ -182,7 +181,7 @@ class RagelEmbeddedLexer(RegexLexer):
|
|
|
182
181
|
|
|
183
182
|
# specifically allow regex followed immediately by *
|
|
184
183
|
# so it doesn't get mistaken for a comment
|
|
185
|
-
r'/(?!\*)(
|
|
184
|
+
r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*',
|
|
186
185
|
|
|
187
186
|
# allow / as long as it's not followed by another / or by a *
|
|
188
187
|
r'/(?=[^/*]|$)',
|
|
@@ -193,9 +192,9 @@ class RagelEmbeddedLexer(RegexLexer):
|
|
|
193
192
|
)) + r')+',
|
|
194
193
|
|
|
195
194
|
# strings and comments may safely contain unsafe characters
|
|
196
|
-
r'"(\\\\|\\
|
|
197
|
-
r"'(\\\\|\\
|
|
198
|
-
r"\[(
|
|
195
|
+
r'"(\\\\|\\[^\\]|[^"\\])*"',
|
|
196
|
+
r"'(\\\\|\\[^\\]|[^'\\])*'",
|
|
197
|
+
r"\[(\\\\|\\[^\\]|[^\]\\])*\]", # square bracket literal
|
|
199
198
|
r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
|
|
200
199
|
r'//.*$\n?', # single line comment
|
|
201
200
|
r'\#.*$\n?', # ruby/ragel comment
|
|
@@ -416,8 +415,8 @@ class AntlrLexer(RegexLexer):
|
|
|
416
415
|
(r':', Punctuation),
|
|
417
416
|
|
|
418
417
|
# literals
|
|
419
|
-
(r"
|
|
420
|
-
(r'
|
|
418
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
419
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
421
420
|
(r'<<([^>]|>[^>])>>', String),
|
|
422
421
|
# identifiers
|
|
423
422
|
# Tokens start with capital letter.
|
|
@@ -456,14 +455,14 @@ class AntlrLexer(RegexLexer):
|
|
|
456
455
|
r'[^${}\'"/\\]+', # exclude unsafe characters
|
|
457
456
|
|
|
458
457
|
# strings and comments may safely contain unsafe characters
|
|
459
|
-
r'"(\\\\|\\
|
|
460
|
-
r"'(\\\\|\\
|
|
458
|
+
r'"(\\\\|\\[^\\]|[^"\\])*"',
|
|
459
|
+
r"'(\\\\|\\[^\\]|[^'\\])*'",
|
|
461
460
|
r'//.*$\n?', # single line comment
|
|
462
461
|
r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
|
|
463
462
|
|
|
464
463
|
# regular expression: There's no reason for it to start
|
|
465
464
|
# with a * and this stops confusion with comments.
|
|
466
|
-
r'/(?!\*)(
|
|
465
|
+
r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
|
|
467
466
|
|
|
468
467
|
# backslashes are okay, as long as we are not backslashing a %
|
|
469
468
|
r'\\(?!%)',
|
|
@@ -483,14 +482,14 @@ class AntlrLexer(RegexLexer):
|
|
|
483
482
|
r'[^$\[\]\'"/]+', # exclude unsafe characters
|
|
484
483
|
|
|
485
484
|
# strings and comments may safely contain unsafe characters
|
|
486
|
-
r'"(\\\\|\\
|
|
487
|
-
r"'(\\\\|\\
|
|
485
|
+
r'"(\\\\|\\[^\\]|[^"\\])*"',
|
|
486
|
+
r"'(\\\\|\\[^\\]|[^'\\])*'",
|
|
488
487
|
r'//.*$\n?', # single line comment
|
|
489
488
|
r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment
|
|
490
489
|
|
|
491
490
|
# regular expression: There's no reason for it to start
|
|
492
491
|
# with a * and this stops confusion with comments.
|
|
493
|
-
r'/(?!\*)(
|
|
492
|
+
r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
|
|
494
493
|
|
|
495
494
|
# Now that we've handled regex and javadoc comments
|
|
496
495
|
# it's safe to let / through.
|
|
@@ -653,7 +652,7 @@ class AntlrActionScriptLexer(DelegatingLexer):
|
|
|
653
652
|
"""
|
|
654
653
|
|
|
655
654
|
name = 'ANTLR With ActionScript Target'
|
|
656
|
-
aliases = ['antlr-
|
|
655
|
+
aliases = ['antlr-actionscript', 'antlr-as']
|
|
657
656
|
filenames = ['*.G', '*.g']
|
|
658
657
|
|
|
659
658
|
def __init__(self, **options):
|
|
@@ -701,8 +700,8 @@ class TreetopBaseLexer(RegexLexer):
|
|
|
701
700
|
'rule': [
|
|
702
701
|
include('space'),
|
|
703
702
|
include('end'),
|
|
704
|
-
(r'"(\\\\|\\
|
|
705
|
-
(r"'(\\\\|\\
|
|
703
|
+
(r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
|
|
704
|
+
(r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
|
|
706
705
|
(r'([A-Za-z_]\w*)(:)', bygroups(Name.Label, Punctuation)),
|
|
707
706
|
(r'[A-Za-z_]\w*', Name),
|
|
708
707
|
(r'[()]', Punctuation),
|