U 5_a@sdZddlmZmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZddgZGdddeZGdddeZdS) z pygments.lexers.varnish ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for Varnish configuration :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. ) RegexLexerincludebygroupsusingthisinheritwords) TextCommentOperatorKeywordNameStringNumber PunctuationLiteralVCLLexerVCLSnippetLexerc@speZdZdZdZdgZdgZdgZddZe de d d e e j e eeefd ed fge de d d e fdefdefd ed fge dde e j e e jjefde e j e edfde e j e eeefdedfd ed fgdejfdejfde jfde jfde jfeddde jfde fdefd efed!ddefd"e jfed#e jfd$efd%e ee jjed&fd'e ee jjedfd(e ee jjed)fd*e eje jefd+e ee jefd,e e jee jeefd-e fgd.ejfd/ejdfd0ejd fd1ejfgd2efd/ejd3fd4efgd5ed fd6efgd7efd8ed fd9efgd:ed;fdefd?efd@efge de d e dAd?efgdB Z dCS)DrzN For Varnish Configuration Language (VCL). .. versionadded:: 2.2 ZVCLZvclz*.vclz text/x-vclsrccCs&|drdSd|ddkr"dSdS)Nzvcl 4.0;g?z vcl 4.0;ig?) startswithtextrA/usr/local/lib/python3.8/site-packages/pygments/lexers/varnish.py analyse_texts zVCLLexer.analyse_text whitespacecommentsz(\.\w+)(\s*=\s*)([^;]*)(;)z\}z#popz[!/]+;z\d+z(\.probe)(\s*=\s*)(\w+)(;)z(\.probe)(\s*=\s*)(\{)probez(\.\w+\b)(\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.ipZnowz 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[,]+)Z hash_dataZregsubZ regsuballifelseZelsifelifZsynthZ syntheticZbanreturnsetZunsetimportrnewZrollbackcallzstorage\.\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) rr*r)r/r+rr-r.rrootN)!__name__ __module__ __qualname____doc__namealiases filenames mimetypesrrrr Z Attributer rrrrVariableZGlobalrZDateZFunctionZConstantrr ZBuiltinReservedr Z Multilinerr tokensrrrrrs      9   c@s^eZdZdZdZddgZdgZgZddZde fd e j fgd e j fged eed gd ZdS)rzQ For Varnish Configuration Language snippets. .. versionadded:: 2.2 Z VCLSnippetsZ vclsnippetsZ vclsnippetztext/x-vclsnippetcCsdS)NrrrrrrrszVCLSnippetLexer.analyse_textz\.\.\.+zN(bereq|req|req_top|resp|beresp|obj|client|server|local|remote|storage)($|\.\*)z (backend)\b snippetspre snippetspost)r<r=r0N)r1r2r3r4r5r6r8r7rr r r9r r:rrr;rrrrrs$N)r4Zpygments.lexerrrrrrrrZpygments.tokenr r r r r rrrr__all__rrrrrrs  $,