|eidZddlmZmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZmZddgZGddeZGddeZy) z pygments.lexers.varnish ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for Varnish configuration :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. ) RegexLexerincludebygroupsusingthisinheritwords) TextCommentOperatorKeywordNameStringNumber PunctuationLiteral WhitespaceVCLLexerVCLSnippetLexercJeZdZdZdZdgZdgZdgZdZe de dd e e je eeefd ed fge de dd e fd efdefd ed fge dde e je e j$j&efde e je edfde e je eeefdedfd ed fgdej*fdej*fde j,fde j.fde j$fedde j$fde fdefdefed defd!e j$fed"e j4fd#efd$e ee j$j&ed%fd&e ee j$j&edfd'e ee j$j&ed(fd)e ej6e j.efd*e ee j,efd+e e j,ee j,eefd,e fgd-ej:fd.ej:dfd/ej:d fd0ej:fgd1efd.ej:d2fd3efgd4ed fd5efgd6efd7ed fd8efgd9ed:fd;edefd?e fge de de d@d>efgdA Z!yB)CrzN For Varnish Configuration Language (VCL). .. versionadded:: 2.2 VCLvclz*.vclz text/x-vclsrcc8|jdryd|ddvryy)Nzvcl 4.0;g?z vcl 4.0;ig?) startswithtexts 9/usr/lib/python3/dist-packages/pygments/lexers/varnish.py analyse_textzVCLLexer.analyse_texts+ ??: &T%4[ () whitespacecommentsz(\.\w+)(\s*=\s*)([^;]*)(;)z\}z#popz[!/]+;z\d+z(\.probe)(\s*=\s*)(\w+)(;)z(\.probe)(\s*=\s*)(\{)probez!(\.\w+\b)(\s*=\s*)([^;\s]*)(\s*;)z\{z#pushz(\d\.)?\d+[sdwhmy]z (\d\.)?\d+msz(vcl_pass|vcl_hash|vcl_hit|vcl_init|vcl_backend_fetch|vcl_pipe|vcl_backend_response|vcl_synth|vcl_deliver|vcl_backend_error|vcl_fini|vcl_recv|vcl_purge|vcl_miss)\bzV(pipe|retry|hash|synth|deliver|purge|abandon|lookup|pass|fail|ok|miss|fetch|restart)\bz8(beresp|obj|resp|req|req_top|bereq)\.http\.[a-zA-Z_-]+\b)?z obj.statuszreq.hash_always_misszberesp.backendz req.esi_levelz req.can_gzipz beresp.ttlzobj.uncacheablezreq.ttlzobj.hitszclient.identityzreq.hash_ignore_busyz obj.reasonzreq.xidz req_top.protoz beresp.agez obj.protozobj.agezlocal.ipzberesp.uncacheablez req.methodzberesp.backend.ipnowz obj.gracez req.restartsz beresp.keepz req.protoz resp.protoz bereq.xidzbereq.between_bytes_timeoutzreq.esizbereq.first_byte_timeoutz bereq.methodzbereq.connect_timeoutzberesp.do_gzipz resp.statuszberesp.do_gunzipzberesp.storage_hintzresp.is_streamingzberesp.do_streamzreq_top.methodz bereq.backendzberesp.backend.namez beresp.statuszreq.urlzobj.keepzobj.ttlz beresp.reasonz bereq.retriesz resp.reasonz bereq.urlz beresp.do_esiz beresp.protoz client.ipz bereq.protozserver.hostnamez remote.ipzreq.backend_hintzserver.identityz req_top.urlz beresp.gracezberesp.was_304z server.ipzbereq.uncacheablez\b)suffixz[!%&+*\-,/<.}{>=|~]+z[();]z[,]+) hash_dataregsub regsuballifelseelsifelifsynth syntheticbanreturnsetunsetimportrnewrollbackcallzstorage\.\w+\.\w+\b)truefalsez\d+\bz(backend)(\s+\w+)(\s*\{)backendz(probe\s)(\s*\w+\s)(\{)z(acl\s)(\s*\w+\s)(\{)aclz(vcl )(4.0)(;)$z(sub\s+)([a-zA-Z]\w*)(\s*\{)z+([a-zA-Z_]\w*)(\.)([a-zA-Z_]\w*)(\s*\(.*\))z [a-zA-Z_]\w*z[^*/]+z/\*z\*/z[*/]z#.*$commentz//.*$"z[^"\n]+z[^"}]z"\}z["}]zL?"stringz\{" multistringz\nz\s+z\\\n statements) r#r:r9r?r;r!r=r>r rootN)"__name__ __module__ __qualname____doc__namealiases filenames mimetypesrrrr Attributer rrrrVariableGlobalrDateFunctionConstantr r BuiltinReservedr Multilinerrr tokensrrrrs DgG I !I  L ! J  * dnnhd [ I K K (   L ! J  x ;  V  K (   L ! * dnnh 0D0Dk R T & dnnh r^sP--- ( )JzJZhr