__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
"""
pygments.lexers.varnish
~~~~~~~~~~~~~~~~~~~~~~~
Lexers for Varnish configuration
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from pygments.lexer import RegexLexer, include, bygroups, using, this, \
inherit, words
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Literal, Whitespace
__all__ = ['VCLLexer', 'VCLSnippetLexer']
class VCLLexer(RegexLexer):
"""
For Varnish Configuration Language (VCL).
"""
name = 'VCL'
aliases = ['vcl']
filenames = ['*.vcl']
mimetypes = ['text/x-vclsrc']
url = 'https://www.varnish-software.com/developers/tutorials/varnish-configuration-language-vcl'
version_added = '2.2'
def analyse_text(text):
# If the very first line is 'vcl 4.0;' it's pretty much guaranteed
# that this is VCL
if text.startswith('vcl 4.0;'):
return 1.0
# Skip over comments and blank lines
# This is accurate enough that returning 0.9 is reasonable.
# Almost no VCL files start without some comments.
elif '\nvcl 4.0;' in text[:1000]:
return 0.9
tokens = {
'probe': [
include('whitespace'),
include('comments'),
(r'(\.\w+)(\s*=\s*)([^;]*)(;)',
bygroups(Name.Attribute, Operator, using(this), Punctuation)),
(r'\}', Punctuation, '#pop'),
],
'acl': [
include('whitespace'),
include('comments'),
(r'[!/]+', Operator),
(r';', Punctuation),
(r'\d+', Number),
(r'\}', Punctuation, '#pop'),
],
'backend': [
include('whitespace'),
(r'(\.probe)(\s*=\s*)(\w+)(;)',
bygroups(Name.Attribute, Operator, Name.Variable.Global, Punctuation)),
(r'(\.probe)(\s*=\s*)(\{)',
bygroups(Name.Attribute, Operator, Punctuation), 'probe'),
(r'(\.\w+\b)(\s*=\s*)([^;\s]*)(\s*;)',
bygroups(Name.Attribute, Operator, using(this), Punctuation)),
(r'\{', Punctuation, '#push'),
(r'\}', Punctuation, '#pop'),
],
'statements': [
(r'(\d\.)?\d+[sdwhmy]', Literal.Date),
(r'(\d\.)?\d+ms', Literal.Date),
(r'(vcl_pass|vcl_hash|vcl_hit|vcl_init|vcl_backend_fetch|vcl_pipe|'
r'vcl_backend_response|vcl_synth|vcl_deliver|vcl_backend_error|'
r'vcl_fini|vcl_recv|vcl_purge|vcl_miss)\b', Name.Function),
(r'(pipe|retry|hash|synth|deliver|purge|abandon|lookup|pass|fail|ok|'
r'miss|fetch|restart)\b', Name.Constant),
(r'(beresp|obj|resp|req|req_top|bereq)\.http\.[a-zA-Z_-]+\b', Name.Variable),
(words((
'obj.status', 'req.hash_always_miss', 'beresp.backend', 'req.esi_level',
'req.can_gzip', 'beresp.ttl', 'obj.uncacheable', 'req.ttl', 'obj.hits',
'client.identity', 'req.hash_ignore_busy', 'obj.reason', 'req.xid',
'req_top.proto', 'beresp.age', 'obj.proto', 'obj.age', 'local.ip',
'beresp.uncacheable', 'req.method', 'beresp.backend.ip', 'now',
'obj.grace', 'req.restarts', 'beresp.keep', 'req.proto', 'resp.proto',
'bereq.xid', 'bereq.between_bytes_timeout', 'req.esi',
'bereq.first_byte_timeout', 'bereq.method', 'bereq.connect_timeout',
'beresp.do_gzip', 'resp.status', 'beresp.do_gunzip',
'beresp.storage_hint', 'resp.is_streaming', 'beresp.do_stream',
'req_top.method', 'bereq.backend', 'beresp.backend.name', 'beresp.status',
'req.url', 'obj.keep', 'obj.ttl', 'beresp.reason', 'bereq.retries',
'resp.reason', 'bereq.url', 'beresp.do_esi', 'beresp.proto', 'client.ip',
'bereq.proto', 'server.hostname', 'remote.ip', 'req.backend_hint',
'server.identity', 'req_top.url', 'beresp.grace', 'beresp.was_304',
'server.ip', 'bereq.uncacheable'), suffix=r'\b'),
Name.Variable),
(r'[!%&+*\-,/<.}{>=|~]+', Operator),
(r'[();]', Punctuation),
(r'[,]+', Punctuation),
(words(('hash_data', 'regsub', 'regsuball', 'if', 'else',
'elsif', 'elif', 'synth', 'synthetic', 'ban',
'return', 'set', 'unset', 'import', 'include', 'new',
'rollback', 'call'), suffix=r'\b'),
Keyword),
(r'storage\.\w+\.\w+\b', Name.Variable),
(words(('true', 'false')), Name.Builtin),
(r'\d+\b', Number),
(r'(backend)(\s+\w+)(\s*\{)',
bygroups(Keyword, Name.Variable.Global, Punctuation), 'backend'),
(r'(probe\s)(\s*\w+\s)(\{)',
bygroups(Keyword, Name.Variable.Global, Punctuation), 'probe'),
(r'(acl\s)(\s*\w+\s)(\{)',
bygroups(Keyword, Name.Variable.Global, Punctuation), 'acl'),
(r'(vcl )(4.0)(;)$',
bygroups(Keyword.Reserved, Name.Constant, Punctuation)),
(r'(sub\s+)([a-zA-Z]\w*)(\s*\{)',
bygroups(Keyword, Name.Function, Punctuation)),
(r'([a-zA-Z_]\w*)'
r'(\.)'
r'([a-zA-Z_]\w*)'
r'(\s*\(.*\))',
bygroups(Name.Function, Punctuation, Name.Function, using(this))),
(r'[a-zA-Z_]\w*', Name),
],
'comment': [
(r'[^*/]+', Comment.Multiline),
(r'/\*', Comment.Multiline, '#push'),
(r'\*/', Comment.Multiline, '#pop'),
(r'[*/]', Comment.Multiline),
],
'comments': [
(r'#.*$', Comment),
(r'/\*', Comment.Multiline, 'comment'),
(r'//.*$', Comment),
],
'string': [
(r'"', String, '#pop'),
(r'[^"\n]+', String), # all other characters
],
'multistring': [
(r'[^"}]', String),
(r'"\}', String, '#pop'),
(r'["}]', String),
],
'whitespace': [
(r'L?"', String, 'string'),
(r'\{"', String, 'multistring'),
(r'\n', Whitespace),
(r'\s+', Whitespace),
(r'\\\n', Text), # line continuation
],
'root': [
include('whitespace'),
include('comments'),
include('statements'),
(r'\s+', Whitespace),
],
}
class VCLSnippetLexer(VCLLexer):
"""
For Varnish Configuration Language snippets.
"""
name = 'VCLSnippets'
aliases = ['vclsnippets', 'vclsnippet']
mimetypes = ['text/x-vclsnippet']
filenames = []
url = 'https://www.varnish-software.com/developers/tutorials/varnish-configuration-language-vcl'
version_added = '2.2'
def analyse_text(text):
# override method inherited from VCLLexer
return 0
tokens = {
'snippetspre': [
(r'\.\.\.+', Comment),
(r'(bereq|req|req_top|resp|beresp|obj|client|server|local|remote|'
r'storage)($|\.\*)', Name.Variable),
],
'snippetspost': [
(r'(backend)\b', Keyword.Reserved),
],
'root': [
include('snippetspre'),
inherit,
include('snippetspost'),
],
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 11.78 KB | 0644 |
|
| _ada_builtins.py | File | 1.51 KB | 0644 |
|
| _asy_builtins.py | File | 26.65 KB | 0644 |
|
| _cl_builtins.py | File | 13.67 KB | 0644 |
|
| _cocoa_builtins.py | File | 102.71 KB | 0644 |
|
| _csound_builtins.py | File | 17.98 KB | 0644 |
|
| _css_builtins.py | File | 12.15 KB | 0644 |
|
| _julia_builtins.py | File | 11.6 KB | 0644 |
|
| _lasso_builtins.py | File | 131.36 KB | 0644 |
|
| _lilypond_builtins.py | File | 105.56 KB | 0644 |
|
| _lua_builtins.py | File | 7.92 KB | 0644 |
|
| _luau_builtins.py | File | 955 B | 0644 |
|
| _mapping.py | File | 67.47 KB | 0644 |
|
| _mql_builtins.py | File | 24.13 KB | 0644 |
|
| _mysql_builtins.py | File | 25.23 KB | 0644 |
|
| _openedge_builtins.py | File | 48.24 KB | 0644 |
|
| _php_builtins.py | File | 105.39 KB | 0644 |
|
| _postgres_builtins.py | File | 13.03 KB | 0644 |
|
| _qlik_builtins.py | File | 12.3 KB | 0644 |
|
| _scheme_builtins.py | File | 31.8 KB | 0644 |
|
| _scilab_builtins.py | File | 51.18 KB | 0644 |
|
| _sourcemod_builtins.py | File | 26.15 KB | 0644 |
|
| _stan_builtins.py | File | 13.13 KB | 0644 |
|
| _stata_builtins.py | File | 26.59 KB | 0644 |
|
| _tsql_builtins.py | File | 15.1 KB | 0644 |
|
| _usd_builtins.py | File | 1.62 KB | 0644 |
|
| _vbscript_builtins.py | File | 4.13 KB | 0644 |
|
| _vim_builtins.py | File | 55.73 KB | 0644 |
|
| actionscript.py | File | 11.45 KB | 0644 |
|
| ada.py | File | 5.23 KB | 0644 |
|
| agile.py | File | 896 B | 0644 |
|
| algebra.py | File | 9.68 KB | 0644 |
|
| ambient.py | File | 2.54 KB | 0644 |
|
| amdgpu.py | File | 1.68 KB | 0644 |
|
| ampl.py | File | 4.08 KB | 0644 |
|
| apdlexer.py | File | 30.08 KB | 0644 |
|
| apl.py | File | 3.32 KB | 0644 |
|
| archetype.py | File | 11.27 KB | 0644 |
|
| arrow.py | File | 3.48 KB | 0644 |
|
| arturo.py | File | 11.15 KB | 0644 |
|
| asc.py | File | 1.65 KB | 0644 |
|
| asm.py | File | 40.95 KB | 0644 |
|
| asn1.py | File | 4.16 KB | 0644 |
|
| automation.py | File | 19.37 KB | 0644 |
|
| bare.py | File | 2.95 KB | 0644 |
|
| basic.py | File | 27.33 KB | 0644 |
|
| bdd.py | File | 1.6 KB | 0644 |
|
| berry.py | File | 3.13 KB | 0644 |
|
| bibtex.py | File | 4.7 KB | 0644 |
|
| blueprint.py | File | 6.04 KB | 0644 |
|
| boa.py | File | 3.83 KB | 0644 |
|
| bqn.py | File | 3.26 KB | 0644 |
|
| business.py | File | 27.68 KB | 0644 |
|
| c_cpp.py | File | 17.64 KB | 0644 |
|
| c_like.py | File | 31.27 KB | 0644 |
|
| capnproto.py | File | 2.12 KB | 0644 |
|
| carbon.py | File | 3.14 KB | 0644 |
|
| cddl.py | File | 4.96 KB | 0644 |
|
| chapel.py | File | 5.04 KB | 0644 |
|
| clean.py | File | 6.27 KB | 0644 |
|
| comal.py | File | 3.1 KB | 0644 |
|
| compiled.py | File | 1.39 KB | 0644 |
|
| configs.py | File | 49.35 KB | 0644 |
|
| console.py | File | 4.08 KB | 0644 |
|
| cplint.py | File | 1.36 KB | 0644 |
|
| crystal.py | File | 15.38 KB | 0644 |
|
| csound.py | File | 16.6 KB | 0644 |
|
| css.py | File | 24.77 KB | 0644 |
|
| d.py | File | 9.69 KB | 0644 |
|
| dalvik.py | File | 4.5 KB | 0644 |
|
| data.py | File | 26.39 KB | 0644 |
|
| dax.py | File | 7.91 KB | 0644 |
|
| devicetree.py | File | 3.92 KB | 0644 |
|
| diff.py | File | 5.26 KB | 0644 |
|
| dns.py | File | 3.8 KB | 0644 |
|
| dotnet.py | File | 37.07 KB | 0644 |
|
| dsls.py | File | 35.88 KB | 0644 |
|
| dylan.py | File | 10.15 KB | 0644 |
|
| ecl.py | File | 6.22 KB | 0644 |
|
| eiffel.py | File | 2.63 KB | 0644 |
|
| elm.py | File | 3.08 KB | 0644 |
|
| elpi.py | File | 6.38 KB | 0644 |
|
| email.py | File | 4.69 KB | 0644 |
|
| erlang.py | File | 18.7 KB | 0644 |
|
| esoteric.py | File | 10.25 KB | 0644 |
|
| ezhil.py | File | 3.2 KB | 0644 |
|
| factor.py | File | 19.07 KB | 0644 |
|
| fantom.py | File | 9.99 KB | 0644 |
|
| felix.py | File | 9.43 KB | 0644 |
|
| fift.py | File | 1.61 KB | 0644 |
|
| floscript.py | File | 2.6 KB | 0644 |
|
| forth.py | File | 7.02 KB | 0644 |
|
| fortran.py | File | 10.14 KB | 0644 |
|
| foxpro.py | File | 25.68 KB | 0644 |
|
| freefem.py | File | 26.28 KB | 0644 |
|
| func.py | File | 3.61 KB | 0644 |
|
| functional.py | File | 693 B | 0644 |
|
| futhark.py | File | 3.66 KB | 0644 |
|
| gcodelexer.py | File | 874 B | 0644 |
|
| gdscript.py | File | 7.39 KB | 0644 |
|
| go.py | File | 3.69 KB | 0644 |
|
| grammar_notation.py | File | 7.85 KB | 0644 |
|
| graph.py | File | 4.01 KB | 0644 |
|
| graphics.py | File | 38.23 KB | 0644 |
|
| graphql.py | File | 5.47 KB | 0644 |
|
| graphviz.py | File | 1.89 KB | 0644 |
|
| gsql.py | File | 3.9 KB | 0755 |
|
| haskell.py | File | 32.46 KB | 0644 |
|
| haxe.py | File | 30.25 KB | 0644 |
|
| hdl.py | File | 22.21 KB | 0644 |
|
| hexdump.py | File | 3.57 KB | 0644 |
|
| html.py | File | 20.09 KB | 0644 |
|
| idl.py | File | 15.09 KB | 0644 |
|
| igor.py | File | 30.88 KB | 0644 |
|
| inferno.py | File | 3.06 KB | 0644 |
|
| installers.py | File | 12.99 KB | 0644 |
|
| int_fiction.py | File | 55.22 KB | 0644 |
|
| iolang.py | File | 1.86 KB | 0644 |
|
| j.py | File | 4.74 KB | 0644 |
|
| javascript.py | File | 61.62 KB | 0644 |
|
| jmespath.py | File | 2.03 KB | 0644 |
|
| jslt.py | File | 3.61 KB | 0644 |
|
| jsonnet.py | File | 5.5 KB | 0644 |
|
| jsx.py | File | 2.18 KB | 0644 |
|
| julia.py | File | 11.41 KB | 0644 |
|
| jvm.py | File | 70.96 KB | 0644 |
|
| kuin.py | File | 11.14 KB | 0644 |
|
| kusto.py | File | 3.4 KB | 0644 |
|
| ldap.py | File | 6.4 KB | 0644 |
|
| lean.py | File | 8.37 KB | 0644 |
|
| lilypond.py | File | 9.52 KB | 0644 |
|
| lisp.py | File | 153.97 KB | 0644 |
|
| macaulay2.py | File | 32.07 KB | 0644 |
|
| make.py | File | 7.65 KB | 0644 |
|
| markup.py | File | 63.56 KB | 0644 |
|
| math.py | File | 695 B | 0644 |
|
| matlab.py | File | 129.85 KB | 0644 |
|
| maxima.py | File | 2.65 KB | 0644 |
|
| meson.py | File | 4.23 KB | 0644 |
|
| mime.py | File | 7.4 KB | 0644 |
|
| minecraft.py | File | 13.38 KB | 0644 |
|
| mips.py | File | 4.55 KB | 0644 |
|
| ml.py | File | 34.56 KB | 0644 |
|
| modeling.py | File | 13.36 KB | 0644 |
|
| modula2.py | File | 51.83 KB | 0644 |
|
| mojo.py | File | 23.61 KB | 0644 |
|
| monte.py | File | 6.14 KB | 0644 |
|
| mosel.py | File | 9.08 KB | 0644 |
|
| ncl.py | File | 62.5 KB | 0644 |
|
| nimrod.py | File | 6.26 KB | 0644 |
|
| nit.py | File | 2.66 KB | 0644 |
|
| nix.py | File | 4.32 KB | 0644 |
|
| oberon.py | File | 4.11 KB | 0644 |
|
| objective.py | File | 22.7 KB | 0644 |
|
| ooc.py | File | 2.91 KB | 0644 |
|
| openscad.py | File | 3.61 KB | 0644 |
|
| other.py | File | 1.72 KB | 0644 |
|
| parasail.py | File | 2.66 KB | 0644 |
|
| parsers.py | File | 25.97 KB | 0644 |
|
| pascal.py | File | 30.26 KB | 0644 |
|
| pawn.py | File | 8.06 KB | 0644 |
|
| perl.py | File | 38.27 KB | 0644 |
|
| phix.py | File | 22.7 KB | 0644 |
|
| php.py | File | 12.75 KB | 0644 |
|
| pointless.py | File | 1.93 KB | 0644 |
|
| pony.py | File | 3.2 KB | 0644 |
|
| praat.py | File | 12.38 KB | 0644 |
|
| procfile.py | File | 1.13 KB | 0644 |
|
| prolog.py | File | 12.56 KB | 0644 |
|
| promql.py | File | 4.63 KB | 0644 |
|
| prql.py | File | 8.54 KB | 0644 |
|
| ptx.py | File | 4.4 KB | 0644 |
|
| python.py | File | 52.38 KB | 0644 |
|
| q.py | File | 6.77 KB | 0644 |
|
| qlik.py | File | 3.61 KB | 0644 |
|
| qvt.py | File | 5.96 KB | 0644 |
|
| r.py | File | 6.19 KB | 0644 |
|
| rdf.py | File | 15.67 KB | 0644 |
|
| rebol.py | File | 17.83 KB | 0644 |
|
| resource.py | File | 2.86 KB | 0644 |
|
| ride.py | File | 4.92 KB | 0644 |
|
| rita.py | File | 1.1 KB | 0644 |
|
| rnc.py | File | 1.93 KB | 0644 |
|
| roboconf.py | File | 2.03 KB | 0644 |
|
| robotframework.py | File | 18.02 KB | 0644 |
|
| ruby.py | File | 22.22 KB | 0644 |
|
| rust.py | File | 8.07 KB | 0644 |
|
| sas.py | File | 9.23 KB | 0644 |
|
| savi.py | File | 4.76 KB | 0644 |
|
| scdoc.py | File | 2.46 KB | 0644 |
|
| scripting.py | File | 79.16 KB | 0644 |
|
| sgf.py | File | 1.94 KB | 0644 |
|
| shell.py | File | 35.38 KB | 0644 |
|
| sieve.py | File | 2.46 KB | 0644 |
|
| slash.py | File | 8.29 KB | 0644 |
|
| smalltalk.py | File | 7.04 KB | 0644 |
|
| smithy.py | File | 2.6 KB | 0644 |
|
| smv.py | File | 2.74 KB | 0644 |
|
| snobol.py | File | 2.71 KB | 0644 |
|
| solidity.py | File | 3.09 KB | 0644 |
|
| soong.py | File | 2.28 KB | 0644 |
|
| sophia.py | File | 3.3 KB | 0644 |
|
| special.py | File | 3.47 KB | 0644 |
|
| spice.py | File | 2.72 KB | 0644 |
|
| sql.py | File | 41.6 KB | 0644 |
|
| srcinfo.py | File | 1.71 KB | 0644 |
|
| stata.py | File | 6.26 KB | 0644 |
|
| supercollider.py | File | 3.61 KB | 0644 |
|
| tact.py | File | 10.56 KB | 0644 |
|
| tal.py | File | 2.84 KB | 0644 |
|
| tcl.py | File | 5.38 KB | 0644 |
|
| teal.py | File | 3.44 KB | 0644 |
|
| templates.py | File | 73.94 KB | 0644 |
|
| teraterm.py | File | 9.49 KB | 0644 |
|
| testing.py | File | 10.56 KB | 0644 |
|
| text.py | File | 1.02 KB | 0644 |
|
| textedit.py | File | 7.58 KB | 0644 |
|
| textfmts.py | File | 15.16 KB | 0644 |
|
| theorem.py | File | 17.44 KB | 0644 |
|
| thingsdb.py | File | 5.88 KB | 0644 |
|
| tlb.py | File | 1.42 KB | 0644 |
|
| tls.py | File | 1.5 KB | 0644 |
|
| tnt.py | File | 10.21 KB | 0644 |
|
| trafficscript.py | File | 1.47 KB | 0644 |
|
| typoscript.py | File | 8.14 KB | 0644 |
|
| typst.py | File | 4.24 KB | 0644 |
|
| ul4.py | File | 10.25 KB | 0644 |
|
| unicon.py | File | 18.19 KB | 0644 |
|
| urbi.py | File | 5.94 KB | 0644 |
|
| usd.py | File | 3.23 KB | 0644 |
|
| varnish.py | File | 7.3 KB | 0644 |
|
| verification.py | File | 3.84 KB | 0644 |
|
| verifpal.py | File | 2.6 KB | 0644 |
|
| vip.py | File | 5.58 KB | 0644 |
|
| vyper.py | File | 5.46 KB | 0644 |
|
| web.py | File | 913 B | 0644 |
|
| webassembly.py | File | 5.56 KB | 0644 |
|
| webidl.py | File | 10.27 KB | 0644 |
|
| webmisc.py | File | 39.61 KB | 0644 |
|
| wgsl.py | File | 11.6 KB | 0644 |
|
| whiley.py | File | 3.92 KB | 0644 |
|
| wowtoc.py | File | 3.98 KB | 0644 |
|
| wren.py | File | 3.15 KB | 0644 |
|
| x10.py | File | 1.9 KB | 0644 |
|
| xorg.py | File | 925 B | 0644 |
|
| yang.py | File | 4.39 KB | 0644 |
|
| yara.py | File | 2.37 KB | 0644 |
|
| zig.py | File | 3.88 KB | 0644 |
|