Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
pygments /
lexers /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2025-01-15 04:26
__init__.py
10.86
KB
-rw-r--r--
2023-01-01 08:34
_ada_builtins.py
1.51
KB
-rw-r--r--
2023-01-01 08:34
_asy_builtins.py
26.65
KB
-rw-r--r--
2023-01-01 08:34
_cl_builtins.py
13.67
KB
-rw-r--r--
2023-01-01 08:34
_cocoa_builtins.py
102.72
KB
-rw-r--r--
2023-01-01 08:34
_csound_builtins.py
17.98
KB
-rw-r--r--
2023-01-01 08:34
_css_builtins.py
12.15
KB
-rw-r--r--
2023-01-01 08:34
_julia_builtins.py
11.6
KB
-rw-r--r--
2023-01-01 08:34
_lasso_builtins.py
131.36
KB
-rw-r--r--
2023-01-01 08:34
_lilypond_builtins.py
104.28
KB
-rw-r--r--
2023-01-01 08:34
_lua_builtins.py
7.89
KB
-rw-r--r--
2023-01-01 08:34
_mapping.py
63.46
KB
-rw-r--r--
2023-01-01 08:34
_mql_builtins.py
24.13
KB
-rw-r--r--
2023-01-01 08:34
_mysql_builtins.py
25.2
KB
-rw-r--r--
2023-01-01 08:34
_openedge_builtins.py
48.24
KB
-rw-r--r--
2023-01-01 08:34
_php_builtins.py
105.35
KB
-rw-r--r--
2023-01-01 08:34
_postgres_builtins.py
12.03
KB
-rw-r--r--
2023-01-01 08:34
_qlik_builtins.py
12.3
KB
-rw-r--r--
2023-01-01 08:34
_scheme_builtins.py
31.8
KB
-rw-r--r--
2023-01-01 08:34
_scilab_builtins.py
51.15
KB
-rw-r--r--
2023-01-01 08:34
_sourcemod_builtins.py
26.12
KB
-rw-r--r--
2023-01-01 08:34
_stan_builtins.py
13.13
KB
-rw-r--r--
2023-01-01 08:34
_stata_builtins.py
26.59
KB
-rw-r--r--
2023-01-01 08:34
_tsql_builtins.py
15.1
KB
-rw-r--r--
2023-01-01 08:34
_usd_builtins.py
1.62
KB
-rw-r--r--
2023-01-01 08:34
_vbscript_builtins.py
4.13
KB
-rw-r--r--
2023-01-01 08:34
_vim_builtins.py
55.73
KB
-rw-r--r--
2023-01-01 08:34
actionscript.py
11.4
KB
-rw-r--r--
2023-01-01 08:34
ada.py
5.2
KB
-rw-r--r--
2023-01-01 08:34
agile.py
876
B
-rw-r--r--
2023-01-01 08:34
algebra.py
9.64
KB
-rw-r--r--
2023-01-01 08:34
ambient.py
2.54
KB
-rw-r--r--
2023-01-01 08:34
amdgpu.py
1.57
KB
-rw-r--r--
2023-01-01 08:34
ampl.py
4.08
KB
-rw-r--r--
2023-01-01 08:34
apdlexer.py
26.03
KB
-rw-r--r--
2023-01-01 08:34
apl.py
3.33
KB
-rw-r--r--
2023-01-01 08:34
archetype.py
11.2
KB
-rw-r--r--
2023-01-01 08:34
arrow.py
3.48
KB
-rw-r--r--
2023-01-01 08:34
arturo.py
11.15
KB
-rw-r--r--
2023-01-01 08:34
asc.py
1.58
KB
-rw-r--r--
2023-01-01 08:34
asm.py
40.28
KB
-rw-r--r--
2023-01-01 08:34
automation.py
19.35
KB
-rw-r--r--
2023-01-01 08:34
bare.py
2.95
KB
-rw-r--r--
2023-01-01 08:34
basic.py
27.27
KB
-rw-r--r--
2023-01-01 08:34
bdd.py
1.61
KB
-rw-r--r--
2023-01-01 08:34
berry.py
3.14
KB
-rw-r--r--
2023-01-01 08:34
bibtex.py
4.61
KB
-rw-r--r--
2023-01-01 08:34
boa.py
3.82
KB
-rw-r--r--
2023-01-01 08:34
business.py
27.45
KB
-rw-r--r--
2023-01-01 08:34
c_cpp.py
17.37
KB
-rw-r--r--
2023-01-01 08:34
c_like.py
28.52
KB
-rw-r--r--
2023-01-01 08:34
capnproto.py
2.12
KB
-rw-r--r--
2023-01-01 08:34
cddl.py
5.06
KB
-rw-r--r--
2023-01-01 08:34
chapel.py
4.9
KB
-rw-r--r--
2023-01-01 08:34
clean.py
6.25
KB
-rw-r--r--
2023-01-01 08:34
comal.py
3.08
KB
-rw-r--r--
2023-01-01 08:34
compiled.py
1.37
KB
-rw-r--r--
2023-01-01 08:34
configs.py
40.84
KB
-rw-r--r--
2023-01-01 08:34
console.py
4.05
KB
-rw-r--r--
2023-01-01 08:34
cplint.py
1.36
KB
-rw-r--r--
2023-01-01 08:34
crystal.py
15.39
KB
-rw-r--r--
2023-01-01 08:34
csound.py
16.6
KB
-rw-r--r--
2023-01-01 08:34
css.py
24.72
KB
-rw-r--r--
2023-01-01 08:34
d.py
9.64
KB
-rw-r--r--
2023-01-01 08:34
dalvik.py
4.5
KB
-rw-r--r--
2023-01-01 08:34
data.py
26.31
KB
-rw-r--r--
2023-01-01 08:34
devicetree.py
3.93
KB
-rw-r--r--
2023-01-01 08:34
diff.py
5.04
KB
-rw-r--r--
2023-01-01 08:34
dotnet.py
29
KB
-rw-r--r--
2023-01-01 08:34
dsls.py
35.91
KB
-rw-r--r--
2023-01-01 08:34
dylan.py
10.14
KB
-rw-r--r--
2023-01-01 08:34
ecl.py
6.22
KB
-rw-r--r--
2023-01-01 08:34
eiffel.py
2.63
KB
-rw-r--r--
2023-01-01 08:34
elm.py
3.08
KB
-rw-r--r--
2023-01-01 08:34
elpi.py
6.22
KB
-rw-r--r--
2023-01-01 08:34
email.py
4.63
KB
-rw-r--r--
2023-01-01 08:34
erlang.py
18.72
KB
-rw-r--r--
2023-01-01 08:34
esoteric.py
10.15
KB
-rw-r--r--
2023-01-01 08:34
ezhil.py
3.2
KB
-rw-r--r--
2023-01-01 08:34
factor.py
19.07
KB
-rw-r--r--
2023-01-01 08:34
fantom.py
9.96
KB
-rw-r--r--
2023-01-01 08:34
felix.py
9.42
KB
-rw-r--r--
2023-01-01 08:34
fift.py
1.58
KB
-rw-r--r--
2023-01-01 08:34
floscript.py
2.61
KB
-rw-r--r--
2023-01-01 08:34
forth.py
7.03
KB
-rw-r--r--
2023-01-01 08:34
fortran.py
10.09
KB
-rw-r--r--
2023-01-01 08:34
foxpro.py
25.6
KB
-rw-r--r--
2023-01-01 08:34
freefem.py
26.28
KB
-rw-r--r--
2023-01-01 08:34
func.py
3.54
KB
-rw-r--r--
2023-01-01 08:34
functional.py
674
B
-rw-r--r--
2023-01-01 08:34
futhark.py
3.64
KB
-rw-r--r--
2023-01-01 08:34
gcodelexer.py
826
B
-rw-r--r--
2023-01-01 08:34
gdscript.py
7.37
KB
-rw-r--r--
2023-01-01 08:34
go.py
3.67
KB
-rw-r--r--
2023-01-01 08:34
grammar_notation.py
7.79
KB
-rw-r--r--
2023-01-01 08:34
graph.py
3.77
KB
-rw-r--r--
2023-01-01 08:34
graphics.py
38.02
KB
-rw-r--r--
2023-01-01 08:34
graphviz.py
1.89
KB
-rw-r--r--
2023-01-01 08:34
gsql.py
3.9
KB
-rw-r--r--
2023-01-01 08:34
haskell.py
32.13
KB
-rw-r--r--
2023-01-01 08:34
haxe.py
30.25
KB
-rw-r--r--
2023-01-01 08:34
hdl.py
21.99
KB
-rw-r--r--
2023-01-01 08:34
hexdump.py
3.52
KB
-rw-r--r--
2023-01-01 08:34
html.py
19.41
KB
-rw-r--r--
2023-01-01 08:34
idl.py
15.09
KB
-rw-r--r--
2023-01-01 08:34
igor.py
29.91
KB
-rw-r--r--
2023-01-01 08:34
inferno.py
3.06
KB
-rw-r--r--
2023-01-01 08:34
installers.py
12.87
KB
-rw-r--r--
2023-01-01 08:34
int_fiction.py
55.78
KB
-rw-r--r--
2023-01-01 08:34
iolang.py
1.86
KB
-rw-r--r--
2023-01-01 08:34
j.py
4.74
KB
-rw-r--r--
2023-01-01 08:34
javascript.py
61.39
KB
-rw-r--r--
2023-01-01 08:34
jmespath.py
2.01
KB
-rw-r--r--
2023-01-01 08:34
jslt.py
3.61
KB
-rw-r--r--
2023-01-01 08:34
jsonnet.py
5.5
KB
-rw-r--r--
2023-01-01 08:34
julia.py
11.37
KB
-rw-r--r--
2023-01-01 08:34
jvm.py
71.22
KB
-rw-r--r--
2023-01-01 08:34
kuin.py
11.14
KB
-rw-r--r--
2023-01-01 08:34
lilypond.py
9.52
KB
-rw-r--r--
2023-01-01 08:34
lisp.py
140.66
KB
-rw-r--r--
2023-01-01 08:34
macaulay2.py
31.17
KB
-rw-r--r--
2023-01-01 08:34
make.py
7.37
KB
-rw-r--r--
2023-01-01 08:34
markup.py
26.17
KB
-rw-r--r--
2023-01-01 08:34
math.py
676
B
-rw-r--r--
2023-01-01 08:34
matlab.py
129.74
KB
-rw-r--r--
2023-01-01 08:34
maxima.py
2.65
KB
-rw-r--r--
2023-01-01 08:34
meson.py
4.24
KB
-rw-r--r--
2023-01-01 08:34
mime.py
7.36
KB
-rw-r--r--
2023-01-01 08:34
minecraft.py
13.52
KB
-rw-r--r--
2023-01-01 08:34
mips.py
4.5
KB
-rw-r--r--
2023-01-01 08:34
ml.py
34.5
KB
-rw-r--r--
2023-01-01 08:34
modeling.py
13.21
KB
-rw-r--r--
2023-01-01 08:34
modula2.py
51.83
KB
-rw-r--r--
2023-01-01 08:34
monte.py
6.14
KB
-rw-r--r--
2023-01-01 08:34
mosel.py
8.97
KB
-rw-r--r--
2023-01-01 08:34
ncl.py
62.46
KB
-rw-r--r--
2023-01-01 08:34
nimrod.py
6.27
KB
-rw-r--r--
2023-01-01 08:34
nit.py
2.66
KB
-rw-r--r--
2023-01-01 08:34
nix.py
3.92
KB
-rw-r--r--
2023-01-01 08:34
oberon.py
4.07
KB
-rw-r--r--
2023-01-01 08:34
objective.py
22.42
KB
-rw-r--r--
2023-01-01 08:34
ooc.py
2.91
KB
-rw-r--r--
2023-01-01 08:34
other.py
1.7
KB
-rw-r--r--
2023-01-01 08:34
parasail.py
2.66
KB
-rw-r--r--
2023-01-01 08:34
parsers.py
25.3
KB
-rw-r--r--
2023-01-01 08:34
pascal.py
30.16
KB
-rw-r--r--
2023-01-01 08:34
pawn.py
7.96
KB
-rw-r--r--
2023-01-01 08:34
perl.py
38.25
KB
-rw-r--r--
2023-01-01 08:34
phix.py
22.71
KB
-rw-r--r--
2023-01-01 08:34
php.py
12.21
KB
-rw-r--r--
2023-01-01 08:34
pointless.py
1.93
KB
-rw-r--r--
2023-01-01 08:34
pony.py
3.17
KB
-rw-r--r--
2023-01-01 08:34
praat.py
12.38
KB
-rw-r--r--
2023-01-01 08:34
procfile.py
1.13
KB
-rw-r--r--
2023-01-01 08:34
prolog.py
12.06
KB
-rw-r--r--
2023-01-01 08:34
promql.py
4.6
KB
-rw-r--r--
2023-01-01 08:34
python.py
52.27
KB
-rw-r--r--
2023-01-01 08:34
q.py
6.77
KB
-rw-r--r--
2023-01-01 08:34
qlik.py
3.58
KB
-rw-r--r--
2023-01-01 08:34
qvt.py
5.93
KB
-rw-r--r--
2023-01-01 08:34
r.py
6.04
KB
-rw-r--r--
2023-01-01 08:34
rdf.py
15.42
KB
-rw-r--r--
2023-01-01 08:34
rebol.py
18.16
KB
-rw-r--r--
2023-01-01 08:34
resource.py
2.83
KB
-rw-r--r--
2023-01-01 08:34
ride.py
4.94
KB
-rw-r--r--
2023-01-01 08:34
rita.py
1.1
KB
-rw-r--r--
2023-01-01 08:34
rnc.py
1.93
KB
-rw-r--r--
2023-01-01 08:34
roboconf.py
1.92
KB
-rw-r--r--
2023-01-01 08:34
robotframework.py
18.02
KB
-rw-r--r--
2023-01-01 08:34
ruby.py
22.24
KB
-rw-r--r--
2023-01-01 08:34
rust.py
8.02
KB
-rw-r--r--
2023-01-01 08:34
sas.py
9.18
KB
-rw-r--r--
2023-01-01 08:34
savi.py
4.54
KB
-rw-r--r--
2023-01-01 08:34
scdoc.py
2.19
KB
-rw-r--r--
2023-01-01 08:34
scripting.py
68.37
KB
-rw-r--r--
2023-01-01 08:34
sgf.py
1.94
KB
-rw-r--r--
2023-01-01 08:34
shell.py
35.49
KB
-rw-r--r--
2023-01-01 08:34
sieve.py
2.38
KB
-rw-r--r--
2023-01-01 08:34
slash.py
8.28
KB
-rw-r--r--
2023-01-01 08:34
smalltalk.py
7.04
KB
-rw-r--r--
2023-01-01 08:34
smithy.py
2.6
KB
-rw-r--r--
2023-01-01 08:34
smv.py
2.71
KB
-rw-r--r--
2023-01-01 08:34
snobol.py
2.67
KB
-rw-r--r--
2023-01-01 08:34
solidity.py
3.05
KB
-rw-r--r--
2023-01-01 08:34
sophia.py
3.25
KB
-rw-r--r--
2023-01-01 08:34
special.py
3.33
KB
-rw-r--r--
2023-01-01 08:34
spice.py
2.63
KB
-rw-r--r--
2023-01-01 08:34
sql.py
33.35
KB
-rw-r--r--
2023-01-01 08:34
srcinfo.py
1.65
KB
-rw-r--r--
2023-01-01 08:34
stata.py
6.27
KB
-rw-r--r--
2023-01-01 08:34
supercollider.py
3.61
KB
-rw-r--r--
2023-01-01 08:34
tal.py
2.58
KB
-rw-r--r--
2023-01-01 08:34
tcl.py
5.38
KB
-rw-r--r--
2023-01-01 08:34
teal.py
3.44
KB
-rw-r--r--
2023-01-01 08:34
templates.py
70.99
KB
-rw-r--r--
2023-01-01 08:34
teraterm.py
9.49
KB
-rw-r--r--
2023-01-01 08:34
testing.py
10.51
KB
-rw-r--r--
2023-01-01 08:34
text.py
1
KB
-rw-r--r--
2023-01-01 08:34
textedit.py
7.43
KB
-rw-r--r--
2023-01-01 08:34
textfmts.py
14.84
KB
-rw-r--r--
2023-01-01 08:34
theorem.py
19.68
KB
-rw-r--r--
2023-01-01 08:34
thingsdb.py
4.13
KB
-rw-r--r--
2023-01-01 08:34
tlb.py
1.34
KB
-rw-r--r--
2023-01-01 08:34
tnt.py
10.21
KB
-rw-r--r--
2023-01-01 08:34
trafficscript.py
1.44
KB
-rw-r--r--
2023-01-01 08:34
typoscript.py
8.01
KB
-rw-r--r--
2023-01-01 08:34
ul4.py
8.75
KB
-rw-r--r--
2023-01-01 08:34
unicon.py
18.08
KB
-rw-r--r--
2023-01-01 08:34
urbi.py
5.9
KB
-rw-r--r--
2023-01-01 08:34
usd.py
3.43
KB
-rw-r--r--
2023-01-01 08:34
varnish.py
7.1
KB
-rw-r--r--
2023-01-01 08:34
verification.py
3.79
KB
-rw-r--r--
2023-01-01 08:34
web.py
894
B
-rw-r--r--
2023-01-01 08:34
webassembly.py
5.57
KB
-rw-r--r--
2023-01-01 08:34
webidl.py
10.27
KB
-rw-r--r--
2023-01-01 08:34
webmisc.py
39.6
KB
-rw-r--r--
2023-01-01 08:34
whiley.py
3.92
KB
-rw-r--r--
2023-01-01 08:34
wowtoc.py
3.93
KB
-rw-r--r--
2023-01-01 08:34
wren.py
3.16
KB
-rw-r--r--
2023-01-01 08:34
x10.py
1.88
KB
-rw-r--r--
2023-01-01 08:34
xorg.py
902
B
-rw-r--r--
2023-01-01 08:34
yang.py
4.39
KB
-rw-r--r--
2023-01-01 08:34
zig.py
3.86
KB
-rw-r--r--
2023-01-01 08:34
Save
Rename
""" pygments.lexers.rdf ~~~~~~~~~~~~~~~~~~~ Lexers for semantic web and RDF query languages and markup. :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, bygroups, default from pygments.token import Keyword, Punctuation, String, Number, Operator, \ Generic, Whitespace, Name, Literal, Comment, Text __all__ = ['SparqlLexer', 'TurtleLexer', 'ShExCLexer'] class SparqlLexer(RegexLexer): """ Lexer for `SPARQL <https://www.w3.org/TR/sparql11-query/>`_ query language. .. versionadded:: 2.0 """ name = 'SPARQL' aliases = ['sparql'] filenames = ['*.rq', '*.sparql'] mimetypes = ['application/sparql-query'] # character group definitions :: PN_CHARS_BASE_GRP = ('a-zA-Z' '\u00c0-\u00d6' '\u00d8-\u00f6' '\u00f8-\u02ff' '\u0370-\u037d' '\u037f-\u1fff' '\u200c-\u200d' '\u2070-\u218f' '\u2c00-\u2fef' '\u3001-\ud7ff' '\uf900-\ufdcf' '\ufdf0-\ufffd') PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_') PN_CHARS_GRP = (PN_CHARS_U_GRP + r'\-' + r'0-9' + '\u00b7' + '\u0300-\u036f' + '\u203f-\u2040') HEX_GRP = '0-9A-Fa-f' PN_LOCAL_ESC_CHARS_GRP = r' _~.\-!$&"()*+,;=/?#@%' # terminal productions :: PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']' PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']' PN_CHARS = '[' + PN_CHARS_GRP + ']' HEX = '[' + HEX_GRP + ']' PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']' IRIREF = r'<(?:[^<>"{}|^`\\\x00-\x20])*>' BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \ '.]*' + PN_CHARS + ')?' PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?' VARNAME = '[0-9' + PN_CHARS_U_GRP + '][' + PN_CHARS_U_GRP + \ '0-9\u00b7\u0300-\u036f\u203f-\u2040]*' PERCENT = '%' + HEX + HEX PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')' PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' + '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' + PN_CHARS_GRP + ':]|' + PLX + '))?') EXPONENT = r'[eE][+-]?\d+' # Lexer token definitions :: tokens = { 'root': [ (r'\s+', Text), # keywords :: (r'(?i)(select|construct|describe|ask|where|filter|group\s+by|minus|' r'distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|' r'offset|values|bindings|load|into|clear|drop|create|add|move|copy|' r'insert\s+data|delete\s+data|delete\s+where|with|delete|insert|' r'using\s+named|using|graph|default|named|all|optional|service|' r'silent|bind|undef|union|not\s+in|in|as|having|to|prefix|base)\b', Keyword), (r'(a)\b', Keyword), # IRIs :: ('(' + IRIREF + ')', Name.Label), # blank nodes :: ('(' + BLANK_NODE_LABEL + ')', Name.Label), # # variables :: ('[?$]' + VARNAME, Name.Variable), # prefixed names :: (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + r')?', bygroups(Name.Namespace, Punctuation, Name.Tag)), # function names :: (r'(?i)(str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|' r'ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|' r'contains|strstarts|strends|strbefore|strafter|year|month|day|' r'hours|minutes|seconds|timezone|tz|now|uuid|struuid|md5|sha1|sha256|sha384|' r'sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|' r'isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|' r'count|sum|min|max|avg|sample|group_concat|separator)\b', Name.Function), # boolean literals :: (r'(true|false)', Keyword.Constant), # double literals :: (r'[+\-]?(\d+\.\d*' + EXPONENT + r'|\.?\d+' + EXPONENT + ')', Number.Float), # decimal literals :: (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float), # integer literals :: (r'[+\-]?\d+', Number.Integer), # operators :: (r'(\|\||&&|=|\*|\-|\+|/|!=|<=|>=|!|<|>)', Operator), # punctuation characters :: (r'[(){}.;,:^\[\]]', Punctuation), # line comments :: (r'#[^\n]*', Comment), # strings :: (r'"""', String, 'triple-double-quoted-string'), (r'"', String, 'single-double-quoted-string'), (r"'''", String, 'triple-single-quoted-string'), (r"'", String, 'single-single-quoted-string'), ], 'triple-double-quoted-string': [ (r'"""', String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String, 'string-escape'), ], 'single-double-quoted-string': [ (r'"', String, 'end-of-string'), (r'[^"\\\n]+', String), (r'\\', String, 'string-escape'), ], 'triple-single-quoted-string': [ (r"'''", String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String.Escape, 'string-escape'), ], 'single-single-quoted-string': [ (r"'", String, 'end-of-string'), (r"[^'\\\n]+", String), (r'\\', String, 'string-escape'), ], 'string-escape': [ (r'u' + HEX + '{4}', String.Escape, '#pop'), (r'U' + HEX + '{8}', String.Escape, '#pop'), (r'.', String.Escape, '#pop'), ], 'end-of-string': [ (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)', bygroups(Operator, Name.Function), '#pop:2'), (r'\^\^', Operator, '#pop:2'), default('#pop:2'), ], } class TurtleLexer(RegexLexer): """ Lexer for `Turtle <http://www.w3.org/TR/turtle/>`_ data language. .. versionadded:: 2.1 """ name = 'Turtle' aliases = ['turtle'] filenames = ['*.ttl'] mimetypes = ['text/turtle', 'application/x-turtle'] # character group definitions :: PN_CHARS_BASE_GRP = ('a-zA-Z' '\u00c0-\u00d6' '\u00d8-\u00f6' '\u00f8-\u02ff' '\u0370-\u037d' '\u037f-\u1fff' '\u200c-\u200d' '\u2070-\u218f' '\u2c00-\u2fef' '\u3001-\ud7ff' '\uf900-\ufdcf' '\ufdf0-\ufffd') PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_') PN_CHARS_GRP = (PN_CHARS_U_GRP + r'\-' + r'0-9' + '\u00b7' + '\u0300-\u036f' + '\u203f-\u2040') PN_CHARS = '[' + PN_CHARS_GRP + ']' PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']' PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?' HEX_GRP = '0-9A-Fa-f' HEX = '[' + HEX_GRP + ']' PERCENT = '%' + HEX + HEX PN_LOCAL_ESC_CHARS_GRP = r' _~.\-!$&"()*+,;=/?#@%' PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']' PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')' PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' + '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' + PN_CHARS_GRP + ':]|' + PLX + '))?') patterns = { 'PNAME_NS': r'((?:[a-zA-Z][\w-]*)?\:)', # Simplified character range 'IRIREF': r'(<[^<>"{}|^`\\\x00-\x20]*>)' } tokens = { 'root': [ (r'\s+', Text), # Base / prefix (r'(@base|BASE)(\s+)%(IRIREF)s(\s*)(\.?)' % patterns, bygroups(Keyword, Whitespace, Name.Variable, Whitespace, Punctuation)), (r'(@prefix|PREFIX)(\s+)%(PNAME_NS)s(\s+)%(IRIREF)s(\s*)(\.?)' % patterns, bygroups(Keyword, Whitespace, Name.Namespace, Whitespace, Name.Variable, Whitespace, Punctuation)), # The shorthand predicate 'a' (r'(?<=\s)a(?=\s)', Keyword.Type), # IRIREF (r'%(IRIREF)s' % patterns, Name.Variable), # PrefixedName (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + r')?', bygroups(Name.Namespace, Punctuation, Name.Tag)), # Comment (r'#[^\n]+', Comment), (r'\b(true|false)\b', Literal), (r'[+\-]?\d*\.\d+', Number.Float), (r'[+\-]?\d*(:?\.\d+)?E[+\-]?\d+', Number.Float), (r'[+\-]?\d+', Number.Integer), (r'[\[\](){}.;,:^]', Punctuation), (r'"""', String, 'triple-double-quoted-string'), (r'"', String, 'single-double-quoted-string'), (r"'''", String, 'triple-single-quoted-string'), (r"'", String, 'single-single-quoted-string'), ], 'triple-double-quoted-string': [ (r'"""', String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String, 'string-escape'), ], 'single-double-quoted-string': [ (r'"', String, 'end-of-string'), (r'[^"\\\n]+', String), (r'\\', String, 'string-escape'), ], 'triple-single-quoted-string': [ (r"'''", String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String, 'string-escape'), ], 'single-single-quoted-string': [ (r"'", String, 'end-of-string'), (r"[^'\\\n]+", String), (r'\\', String, 'string-escape'), ], 'string-escape': [ (r'.', String, '#pop'), ], 'end-of-string': [ (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)', bygroups(Operator, Generic.Emph), '#pop:2'), (r'(\^\^)%(IRIREF)s' % patterns, bygroups(Operator, Generic.Emph), '#pop:2'), default('#pop:2'), ], } # Turtle and Tera Term macro files share the same file extension # but each has a recognizable and distinct syntax. def analyse_text(text): for t in ('@base ', 'BASE ', '@prefix ', 'PREFIX '): if re.search(r'^\s*%s' % t, text): return 0.80 class ShExCLexer(RegexLexer): """ Lexer for `ShExC <https://shex.io/shex-semantics/#shexc>`_ shape expressions language syntax. """ name = 'ShExC' aliases = ['shexc', 'shex'] filenames = ['*.shex'] mimetypes = ['text/shex'] # character group definitions :: PN_CHARS_BASE_GRP = ('a-zA-Z' '\u00c0-\u00d6' '\u00d8-\u00f6' '\u00f8-\u02ff' '\u0370-\u037d' '\u037f-\u1fff' '\u200c-\u200d' '\u2070-\u218f' '\u2c00-\u2fef' '\u3001-\ud7ff' '\uf900-\ufdcf' '\ufdf0-\ufffd') PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_') PN_CHARS_GRP = (PN_CHARS_U_GRP + r'\-' + r'0-9' + '\u00b7' + '\u0300-\u036f' + '\u203f-\u2040') HEX_GRP = '0-9A-Fa-f' PN_LOCAL_ESC_CHARS_GRP = r"_~.\-!$&'()*+,;=/?#@%" # terminal productions :: PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']' PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']' PN_CHARS = '[' + PN_CHARS_GRP + ']' HEX = '[' + HEX_GRP + ']' PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']' UCHAR_NO_BACKSLASH = '(?:u' + HEX + '{4}|U' + HEX + '{8})' UCHAR = r'\\' + UCHAR_NO_BACKSLASH IRIREF = r'<(?:[^\x00-\x20<>"{}|^`\\]|' + UCHAR + ')*>' BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \ '.]*' + PN_CHARS + ')?' PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?' PERCENT = '%' + HEX + HEX PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')' PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' + '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' + PN_CHARS_GRP + ':]|' + PLX + '))?') EXPONENT = r'[eE][+-]?\d+' # Lexer token definitions :: tokens = { 'root': [ (r'\s+', Text), # keywords :: (r'(?i)(base|prefix|start|external|' r'literal|iri|bnode|nonliteral|length|minlength|maxlength|' r'mininclusive|minexclusive|maxinclusive|maxexclusive|' r'totaldigits|fractiondigits|' r'closed|extra)\b', Keyword), (r'(a)\b', Keyword), # IRIs :: ('(' + IRIREF + ')', Name.Label), # blank nodes :: ('(' + BLANK_NODE_LABEL + ')', Name.Label), # prefixed names :: (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + ')?', bygroups(Name.Namespace, Punctuation, Name.Tag)), # boolean literals :: (r'(true|false)', Keyword.Constant), # double literals :: (r'[+\-]?(\d+\.\d*' + EXPONENT + r'|\.?\d+' + EXPONENT + ')', Number.Float), # decimal literals :: (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float), # integer literals :: (r'[+\-]?\d+', Number.Integer), # operators :: (r'[@|$&=*+?^\-~]', Operator), # operator keywords :: (r'(?i)(and|or|not)\b', Operator.Word), # punctuation characters :: (r'[(){}.;,:^\[\]]', Punctuation), # line comments :: (r'#[^\n]*', Comment), # strings :: (r'"""', String, 'triple-double-quoted-string'), (r'"', String, 'single-double-quoted-string'), (r"'''", String, 'triple-single-quoted-string'), (r"'", String, 'single-single-quoted-string'), ], 'triple-double-quoted-string': [ (r'"""', String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String, 'string-escape'), ], 'single-double-quoted-string': [ (r'"', String, 'end-of-string'), (r'[^"\\\n]+', String), (r'\\', String, 'string-escape'), ], 'triple-single-quoted-string': [ (r"'''", String, 'end-of-string'), (r'[^\\]+', String), (r'\\', String.Escape, 'string-escape'), ], 'single-single-quoted-string': [ (r"'", String, 'end-of-string'), (r"[^'\\\n]+", String), (r'\\', String, 'string-escape'), ], 'string-escape': [ (UCHAR_NO_BACKSLASH, String.Escape, '#pop'), (r'.', String.Escape, '#pop'), ], 'end-of-string': [ (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)', bygroups(Operator, Name.Function), '#pop:2'), (r'\^\^', Operator, '#pop:2'), default('#pop:2'), ], }