K i'dZddlZddlmZmZddlmZmZddlm Z ddl m Z ddl m Z ddlmZdd lmZmZdd lmZdd lmZdd lmZmZmZmZmZmZmZmZm Z dd l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0gdZ1GddeZ2GddeZ3GddeZ4GddeZ5GddeZ6GddeZ7GddeZ8GddeZ9Gd d!eZ:Gd"d#eZ;Gd$d%eZ<Gd&d'eZ=Gd(d)eZ>Gd*d+eZ?Gd,d-eZ@Gd.d/eZAGd0d1eZBGd2d3eZCGd4d5eZDGd6d7eZEGd8d9eZFGd:d;eZGGd<d=eZHGd>d?eZIGd@dAeZJGdBdCeZKGdDdEeZLGdFdGeZMGdHdIeZNGdJdKeZOGdLdMeZPGdNdOeZQGdPdQeZRGdRdSeZSGdTdUeZTGdVdWeZUGdXdYeZVGdZd[eZWGd\d]eZXGd^d_eZYGd`daeZZGdbdceZ[GdddeeZ\GdfdgeZ]GdhdieZ^GdjdkeZ_GdldmeZ`GdndoeZaGdpdqeZbGdrdseZcGdtdueZdGdvdweZeGdxdyeZfGdzd{eZgGd|d}eZhGd~deZiGddeZjGddeZkGddeZlGddeZmGddeZnGddeZoGddeZpGddeZqGddeZrGddeZsGddeZtGddeZuGddeZvy)z pygments.lexers.templates ~~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for various template engines' markup. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) HtmlLexerXmlLexer)JavascriptLexer LassoLexer)CssLexer)PhpLexer) PythonLexer) PerlLexer) JavaLexer TeaLangLexer) YamlLexer)SqlLexer) LexerDelegatingLexer RegexLexerbygroupsincludeusingthisdefaultcombined) Error Punctuation WhitespaceTextCommentOperatorKeywordNameStringNumberOtherToken)html_doctype_matcheslooks_like_xml)@ HtmlPhpLexer XmlPhpLexer CssPhpLexerJavascriptPhpLexerErbLexer RhtmlLexer XmlErbLexer CssErbLexerJavascriptErbLexer SmartyLexerHtmlSmartyLexerXmlSmartyLexerCssSmartyLexerJavascriptSmartyLexer DjangoLexerHtmlDjangoLexerCssDjangoLexerXmlDjangoLexerJavascriptDjangoLexer GenshiLexerHtmlGenshiLexerGenshiTextLexerCssGenshiLexerJavascriptGenshiLexer MyghtyLexerMyghtyHtmlLexerMyghtyXmlLexerMyghtyCssLexerMyghtyJavascriptLexer MasonLexer MakoLexer MakoHtmlLexer MakoXmlLexerMakoJavascriptLexer MakoCssLexerJspLexer CheetahLexerCheetahHtmlLexerCheetahXmlLexerCheetahJavascriptLexer EvoqueLexerEvoqueHtmlLexerEvoqueXmlLexerColdfusionLexerColdfusionHtmlLexerColdfusionCFCLexer VelocityLexerVelocityHtmlLexerVelocityXmlLexerSspLexerTeaTemplateLexerLassoHtmlLexer LassoXmlLexer LassoCssLexerLassoJavascriptLexerHandlebarsLexerHandlebarsHtmlLexerYamlJinjaLexer LiquidLexer TwigLexer TwigHtmlLexer Angular2LexerAngular2HtmlLexer SqlJinjaLexercteZdZdZdZdZdgZdgZdZe jde jZ dZ d Zd Zy ) r*z Generic ERB (Ruby Templating) lexer. Just highlights ruby code between the preprocessor directives, other data is left untouched by the lexer. All options are also forwarded to the `RubyLexer`. ERBhttps://github.com/ruby/erberbzapplication/x-ruby-templatingz*(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)c Vddlm}|di||_tj|fi|y)Nr) RubyLexer)pygments.lexers.rubyrl ruby_lexerr__init__)selfoptionsrls _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pygments/lexers/templates.pyrpzErbLexer.__init__Es%2#.g. t'w'c#jK|jj|}|jdx}} |dk(r-|j}|t|f|t |z }d}n|dk(rl|j}|dvr|t|f|dz }d}n|dk(rH|t j|f|j}|dzt |f|dt |zz }d}nA|dvrt|t j|f|t |z }|j}d}|jj|D]\}} } ||z| | f|t |z }d}n|dvr|t|f|t |z }d}n|t j|dfd}|jj|dd D]\}} } |dz|z| | f|t |z }d}nJ|dk(rE|j}|dvr |t|fn|t j|f|t |z }d}#t$rYy wxYww) z Since ERB doesn't allow "<%" and other tags inside of ruby blocks we have to use a split approach here that fails for that too. r)z<%%z%%>z<%#)<%z<%=z<%-)%>z-%>N) _block_resplitreversepopr"lenrPreprocroget_tokens_unprocessedr IndexError) rqtexttokensstateidxvaltagdatar_idxr_tokenr_values rsrzErbLexer.get_tokens_unprocessedJse %%d+9 A: **,Cuc/)3s8OCEaZ **,Cn,!5#o-q !!7??C77$jjl!Agw33q3s8|+ ! 44!7??C77s3x%zz| ! $ F Ft L@3E7G"'#+w"??@s4y( ! -!5#o-s3x !"7??CF:: ! $ F Fs12w OD3E7G"%'E/7G"CCDs3x !aZ **,C-/!5#o-!7??C773s8OCEmn   s#0H3G1H$$ H0-H3/H00H3cd|vrd|vryyy)Nryrz皙?rmrs rs analyse_textzErbLexer.analyse_texts 4fg dZ dZ!y)r/z Generic Smarty template lexer. Just highlights smarty code between the preprocessor directives, other data is left untouched by the lexer. Smartyhttps://www.smarty.net/smarty*.tplzapplication/x-smartyrj[^{]+z(\{)(\*.*?\*)(\})z(\{php\})(.*?)(\{/php\})T) startinlinez(\{)(/?[a-zA-Z_]\w*)(\s*)\{\s+#push\}#popz#[a-zA-Z_]\w*#z\$[a-zA-Z_]\w*(\.\w+)*z[~!%^&*()+=|\[\]:;,.<>/?@-](true|false|null)\b>[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?"(\\\\|\\[^\\]|[^"\\])*"'(\\\\|\\[^\\]|[^'\\])*' [a-zA-Z_]\w*)rootrcd}tjd|r|dz }tjd|r|dz }tjd|r|dz }tjd|r|dz }|S)Nz\{if\s+.*?\}.*?\{/if\}333333?z\{include\s+file=.*?\}z \{foreach\s+.*?\}.*?\{/foreach\}z \{\$.*?\}{Gz?rsearchrrvs rsrzSmartyLexer.analyse_textsk  99. 5 $JB 99. 5 $JB 998$ ? $JB 99\4 ( $JB rtN)"rrrrrrr filenamesrrr MULTILINEDOTALLflagsr"rrrrrrFunctionrVariablerrConstantr!r DoubleSingle Attributerrrmrtrsr/r/sV D #CjG I'(IM LL299 $Eu  ! goow @ B ( goouX4'Hoo' (* goot}}d ;X G GOOX .  TN GOOW - GOOV ,  . & 6 +X 6 #W%5%5 6'(. 0 (&-- 8 (&-- 8 dnn -  F8 rtr/ceZdZdZdZdZdgZddgZdZe je jzZ dZ d efd eej"eej"fd eej"efd e zd zeej"ej&ej"edfd e zdzeej"ej&ej"fdedfge ej*fdedfde zdzeeej*dfdedfedgdefdedfde zdzej&fedgdefeddedfgdedfdefd efd!ej6fd"ej8fd#efd$efd%ej>fdedfd&edfd'edfdedfdedfdedfgd(Z d)Z!y*)+rTz Generic Velocity template lexer. Just highlights velocity directives and variable references, other data is left untouched by the lexer. Velocityhttps://velocity.apache.org/velocity*.vm*.fhtmlrjrz[^{#$]+z(#)(\*.*?\*)(#)z (##)(.*?$)z(#\{?)(z )(\}?)(\s?\()directiveparamsz)(\}|\b)z\$!?\{?variablez\( funcparamsz(\.)()rrrz=(&&|\|\||==?|!=?|[-<>+*%&|^/])|\b(eq|ne|gt|lt|ge|le|not|in)\bz\[ rangeoperatorz\bz\.\.z\]rz[,:]rrz0[xX][0-9a-fA-F]+[Ll]?z \b[0-9]+\br\)r)rrrrrc<d}tjd|tjr|dz }tjd|tjr|dz }tjd|tjr|dz }tjd|r|dz }|S) Nrz #\{?macro\}?\(.*?\).*?#\{?end\}??z#\{?if\}?\(.+?\).*?#\{?end\}?rz"#\{?foreach\}?\(.+?\).*?#\{?end\}?z6\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?(\.\w+(\([^)]*\))?)*\}?rrrrrs rsrzVelocityLexer.analyse_texts  998$ J $JB 995tRYY G $JB 99:D")) L $JB 99015 7 $JB rtN)"rrrrrrrrrrrrr identifierr"rrrrrrrrrrrr rrr!rrrrrmrtrsrTrTs5 D (ClG#IM LL299 $E J   goow @ B  goow / 1 * $'7 7 goot}}goo{ S  * ${ 2 goot}}goo F H j 1   ' K .  "T ) k4== 17 < K ( FO  N   Ho . Z % ' 7 L !  h  L ! Hf % j 1 TN k " (&-- 8 (&-- 8 & / F # #W%5%5 6 K ) K ( K ) K ( K ) K ( E2Fh rtrTcBeZdZdZdZdgZdZddgZdgZdZ fd Z xZ S) rUza Subclass of the `VelocityLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Velocityz html+velocityrj*.htmlrztext/html+velocityrc 8t|ttfi|yN)superrprrTrqrr __class__s rsrpzVelocityHtmlLexer.__init__/ M=W=rt) rrrrrrralias_filenamesrrrp __classcell__rs@rsrUrU!s= DGM+O%&I (C>>rtrUcHeZdZdZdZdgZdZddgZdgZdZ fd Z d Z xZ S) rVz` Subclass of the `VelocityLexer` that highlights unlexed data with the `XmlLexer`. z XML+Velocityz xml+velocityrj*.xmlrzapplication/xml+velocityrc 8t|ttfi|yr)rrprrTrs rsrpzVelocityXmlLexer.__init__As =`_ and `Jinja `_ template lexer. It just highlights django/jinja code between the preprocessor directives, other data is left untouched by the lexer. z Django/Jinjadjangojinjazapplication/x-django-templatingzapplication/x-jinja5https://www.djangoproject.com/documentation/templatesrjr\{\{varz \{#.*?#\}zJ(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endcomment)(\s*-?)(%\})B(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})z'(\{%)(-?\s*)(filter)(\s+)([a-zA-Z_]\w*)block(\{%)(-?\s*)([a-zA-Z_]\w*)rz(\|)(\s*)([a-zA-Z_]\w*)z#(is)(\s+)(not)?(\s+)?([a-zA-Z_]\w*)z%(_|true|false|none|True|False|None)\bzm(in|as|reversed|recursive|not|and|or|is|if|else|import|with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\bz(loop|block|super|forloop)\bz[a-zA-Z_][\w-]*z\.\w+:?"(\\\\|\\[^\\]|[^"\\])*":?'(\\\\|\\[^\\]|[^'\\])*'z ([{}()\[\]+\-*/%,:~]|[><=]=?|!=)rr (-?)(\}\})rvarnames (-?)(%\}).)rrrrcd}tjd||dz }tjd||dz }tjd||dz }|S)Nrz\{%\s*(block|extends)rz\{%\s*if\s*.*?%\}皙?z \{\{.*?\}\}rrs rsrzDjangoLexer.analyse_texts\  99-t 4 @ #IB 99)4 0 < #IB 99^T * 6 #IB rtN)!rrrrrrrrrrrSrr"rrrrrrrrPseudoBuiltinrr rrr!rrrrrmrtrsr4r4Ks5 D!G24IJI ACM DD244KEu  goou - 7 #5 gootWdGOOwgtoo' ( 1 gootWdGOOGOOT7Doo' ( 8 gootWdDMM J  + gootW 5w @ EN/ 4( hdmm 4 6 3 gtWdDMM B D 5w~~ FG  -dll ;  / t}} % *FMM : *FMM : 0( ;'(. 0 &TN HT7??;V D J  TN 8D'//:F C J  ;   c7Frrtr4ceZdZdZdZdZdgZddgZdgZdZ d d e fd e e je e je jeee jfd e e je je jeee jfd e e je jeee jfde e je jeee jfde jfde e jeee jfdefde e jeeefde eefg iZy)r>zh Generic myghty templates lexer. Code that isn't Myghty markup is yielded as `Token.Other`. Myghtyhttp://www.myghty.org/myghtyz*.myt autodelegatezapplication/x-myghty0.6rr3(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)()z#(?s)(<%\w+)(.*?)(>)(.*?)()z(<&[^|])(.*?)(,.*?)?(&>)(?s)(<&\|)(.*?)(,.*?)?(&>)(?s)(<%!?)(.*?)(%>)(?<=^)#[^\n]*(\n|\Z)(?<=^)(%)([^\n]*)(\n|\Z)(?sx) (.+?) # anything, followed by: (?: (?<=\n)(?=[%#]) | # an eval or comment line (?=r>sf D "CjG.)I'(IM  TN C dhhdmmTXXDk488- .4 dhh txxK($((4 5) dhh u[/A488 L N * dhh u[/A488 L N dhh  # dhhk 2DHH = ? $g . ( dhhk 2E : <  x0 2% Frtr>c:eZdZdZdZdgZdgZdZdZfdZ xZ S)r?z^ Subclass of the `MyghtyLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Myghtyz html+myghtyztext/html+myghtyrrc 8t|ttfi|yr)rrprr>rs rsrpzMyghtyHtmlLexer.__init__ K;7;rt rrrrrrrrrrprrs@rsr?r?s2 DoG#$I "CM<rs rsrpzMyghtyXmlLexer.__init__ ;:':rtrrs@rsr@r@s2 DnG)*I "CM;;rtr@c>eZdZdZdZddgZgdZdZdZfdZ xZ S) rBzd Subclass of the `MyghtyLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Myghtyzjavascript+myghtyz js+myghty)zapplication/x-javascript+myghtyztext/x-javascript+myghtyztext/javascript+mygthyrrc 8t|ttfi|yr)rrprr>rs rsrpzMyghtyJavascriptLexer.__init__ +AArtrrs@rsrBrBs8 D"K0G+I #CMBBrtrBc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rAz] Subclass of the `MyghtyLexer` that highlights unlexed data with the `CssLexer`. z CSS+Myghtyz css+myghtyztext/css+myghtyrrc 8t|ttfi|yr)rrprr>rs rsrpzMyghtyCssLexer.__init__ r rtrrs@rsrArAs2 DnG"#I "CM;;rtrAceZdZdZdZdZdgZgdZdgZdZ dd e fd e e jeje jfd e e je e j e jeee jfd e e jd d d eee jfde e je j eee jfde e je j eee jfde jfde e jeee jfdefde e jeeefde eeefg iZdZy )rCzl Generic mason templates lexer. Stolen from Myghty lexer. Code that isn't Mason markup is HTML. Masonzhttp://www.masonhq.com/mason)z*.mz*.mhtmlz*.mcz*.mi autohandlerdhandlerzapplication/x-mason1.4rrz(?s)(<%doc>)(.*?)()rz%(?s)(<%(\w+)(.*?)(>))(.*?)()Nz(?s)(<&[^|])(.*?)(,.*?)?(&>)rrrrrrcd}tjd|d}|Stjd|tjd}|S)Nrzg?z<&.+&>g)\(?r)rresults rsrzMasonLexer.analyse_text=sH 99,d 3 ?F YYy$ 2 >F rt)rrrrrrrrrrrrrrr Multilinerrrr r"rrrrrmrtrsrCrCs D #CiGMI&'IM  Z * dhh 1 1488 < > C dhh DMM488Dk488- .6 dhhdD% 2BDHH M O , dhh uY/? J L * dhh uY/? J L dhh  # dhhi 0$(( ; = $g . ( dhhi 0% 8 :  i 0(; =' FBrtrCc4eZdZdZdZdZdgZdgZdgZdZ de e je jeefd e e je jeeefd e e je j&e jfd e j(fd e e jej,d fde e jej,e jfde jdfde e jeee jfde e jeee jfde eefde fg de jfdej,fed gde ej2e efde jdfde fgdedfdedfdedfgdZy)rDzd Generic mako templates lexer. Code that isn't Mako markup is yielded as `Token.Other`. Makohttp://www.makotemplates.org/makoz*.maozapplication/x-mako0.7z(\s*)(%)(\s*end(?:\w+))(\n|\Z)z(\s*)(%)([^\n]*)(\n|\Z)z(\s*)(##[^\n]*)(\n|\Z)z(?s)<%doc>.*?z (<%)([\w.:]+)rz()z<%(?=([\w.:]+)) ondeftagsz(?s)(<%(?:!?))(.*?)(%>)z(\$\{)(.*?)(\})a\(?sx) (.+?) # anything, followed by: (?: (?<=\n)(?=%|\#\#) | # an eval or comment line (?=\#\*) | # multiline comment (?=r".*?"'.*?'[^\s>]+)rrrattrN)rrrrrrrrrrrrrrrrr"rr rrrrrrrr rrmrtrsrDrDFs D )ChG I%&IM/ doow G I ' doowk8JE R T & doow~~t G I $g&7&7 8  goot|| 4e = ! goot||W__ E G + > ' goou['97?? K M  goou['97?? K M %* ,TN?  DGOO $ 7 F EN * dnndF 3 5  0 TN  ff % ff %  ( [2FrtrDc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rEz\ Subclass of the `MakoLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Makoz html+makoztext/html+makorrc 8t|ttfi|yr)rrprrDrs rsrpzMakoHtmlLexer.__init__ I99rtrrs@rsrErEs2 DmG!"I )CM::rtrEc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rFz[ Subclass of the `MakoLexer` that highlights unlexed data with the `XmlLexer`. zXML+Makozxml+makozapplication/xml+makorrc 8t|ttfi|yr)rrprrDrs rsrpzMakoXmlLexer.__init__ 988rtrrs@rsrFrFs2 DlG'(I )CM99rtrFc>eZdZdZdZddgZgdZdZdZfdZ xZ S) rGzb Subclass of the `MakoLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Makozjavascript+makozjs+mako)zapplication/x-javascript+makoztext/x-javascript+makoztext/javascript+makorrc 8t|ttfi|yr)rrprrDrs rsrpzMakoJavascriptLexer.__init__s )?w?rtrrs@rsrGrGs8 D ),G)I *CM@@rtrGc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rHz[ Subclass of the `MakoLexer` that highlights unlexed data with the `CssLexer`. zCSS+Makozcss+makoz text/css+makorrc 8t|ttfi|yr)rrprrDrs rsrpzMakoCssLexer.__init__r)rtrrs@rsrHrHs2 DlG !I )CM99rtrHceZdZdZdZy)CheetahPythonLexerzI Lexer for handling Cheetah's special $ tokens in Python syntax. c#Ktdi|j}|j|D]5\}}}|tjk(r|dk(rt j }|||f7yw)N$rm)r rrrr#rrr)rqrpylexerpostype_values rsrz)CheetahPythonLexer.get_tokens_unprocesseds`- -!(!?!?!E $ C # ue# # $sA A"N)rrrrrrmrtrsr/r/s $rtr/c\eZdZdZdZdZddgZddgZdd gZd Z d d e e fd e fde jfde jfde e je ee jfde e je efde e je ee jfdefdefg iZy)rJz Generic cheetah templates lexer. Code that isn't Cheetah markup is yielded as `Token.Other`. This also works for `spitfire templates`_ which use the same syntax. .. _spitfire templates: http://code.google.com/p/spitfire/ Cheetahhttp://www.cheetahtemplate.org/cheetahspitfirez*.tmplz*.sptzapplication/x-cheetahzapplication/x-spitfirerjrz (##[^\n]*)$z#[*](.|\n)*?[*]#z#end[^#\n]*(?:#|$)z#slurp$z(#[a-zA-Z]+)([^#\n]*)(#|$)z(\$)([a-zA-Z_][\w.]*\w)z(?s)(\$\{!?)(.*?)(\})a(?sx) (.+?) # anything, followed by: (?: (?=\#[#a-zA-Z]*) | # an eval comment (?=\$[a-zA-Z_{]) | # a substitution \Z # end of string ) rN)rrrrrrrrrrrrrrr/r"rrrmrtrsrJrJs D +C*%G7#I(*BCIM  w " ' * "GOO 4  ) *w.@(A( *( goou-?'@ A C % goou-?'@oo' ( TN/ FrtrJc>eZdZdZdZgdZddgZdZdZfdZ xZ S) rKz_ Subclass of the `CheetahLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Cheetah)z html+cheetahz html+spitfire htmlcheetahztext/html+cheetahztext/html+spitfirer8rjc 8t|ttfi|yr)rrprrJrs rsrpzCheetahHtmlLexer.__init__s LG$&:;I +CM==rtrKc>eZdZdZdZddgZddgZdZdZfd Z xZ S) rLz^ Subclass of the `CheetahLexer` that highlights unlexed data with the `XmlLexer`. z XML+Cheetahz xml+cheetahz xml+spitfirezapplication/xml+cheetahzapplication/xml+spitfirer8rjc 8t|ttfi|yr)rrprrJrs rsrpzCheetahXmlLexer.__init__" <;7;rtrrs@rsrLrLs8 Dn-G*,FGI +CM<eZdZdZdZgdZgdZdZdZfdZ xZ S)rMze Subclass of the `CheetahLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Cheetah)zjavascript+cheetahz js+cheetahzjavascript+spitfirez js+spitfire)z application/x-javascript+cheetahztext/x-javascript+cheetahztext/javascript+cheetahz!application/x-javascript+spitfireztext/x-javascript+spitfireztext/javascript+spitfirer8rjc 8t|ttfi|yr)rrprrJrs rsrpzCheetahJavascriptLexer.__init__8s ,B'Brtrrs@rsrMrM&s5 D5G-I ,CMCCrtrMc ReZdZdZdZdZdgZddgZdZde fd e e e fd e e e jd fed d e fgde dfdeedfde ee eedfdedfde ee e dfgde e jeee jfdej&fgdZy)r;z8 A lexer that highlights genshi text templates. z Genshi Texthttps://genshi.edgewall.org/ genshitextzapplication/x-genshi-textz text/x-genshirjz[^#$\s]+z ^(\s*)(##.*)$z ^(\s*)(#) directiverz[#$\s]z\nrz(?:def|for|if)\s+.*z (choose|when|with)([^\S\n]+)(.*)z(choose|otherwise)\bz(end\w*)([^\S\n]*)(.*)(?IM% xg6 7 8D'//:K H J     D& ! #U;%7 @ 0 gtU;%7 8& B $gv 6 &$(H& Q  ' goou['97?? K M , ]]  !Frtr;ceZdZdZej Zdefdee je e e jfdefde jdfde jdfed d efgd efd e j"d fde jdfgdeee e edfdeee e edfdedfgd efde j"d fd e j"dfde jdfgdedfdedfdedfgdedfeddefgdedfeddefgdefed gdee je e e jfde j&fgd Zy) GenshiMarkupLexerzX Base lexer for Genshi markup, used by `HtmlGenshiLexer` and `GenshiLexer`. z[^<$]+z(<\?python)(.*?)(\?>)z'<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>z<\s*py:[a-zA-Z0-9]+pytagz<\s*[a-zA-Z0-9:.]+rrz[<$]rz [\w:-]+\s*=pyattrrrz (")(.*?)(")z (')(.*?)(')r"z py:[\w-]+\s*=r#" attr-dstring' attr-sstringz[^\s>]*stringsz[^"'$]+rGz(?`_ and `kid `_ kid HTML templates. z HTML+Genshiz html+genshizhtml+kidrjr*.htm*.xhtmlztext/html+genshirDc 8t|ttfi|yr)rrprrIrs rsrpzHtmlGenshiLexer.__init__s $5AArtcd}tjd||dz }tjd||dz }|tj|zdz SNrz \$\{.*?\}皙?zpy:(.*?)=["\']r)rrrrrs rsrzHtmlGenshiLexer.analyse_textsW  99\4 ( 4 #IB 99& - 9 #IBI**400477rtrrs@rsr:r:s; Dj)GM4O#$I (CB8rtr:cPeZdZdZdZgdZdgZdZdgZddgZ d Z fd Z d Z xZ S) r9z A lexer that highlights `genshi `_ and `kid `_ kid XML templates. Genshi)genshikidz xml+genshizxml+kidz*.kidrjrzapplication/x-genshizapplication/x-kidrDc 8t|ttfi|yr)rrprrIrs rsrpzGenshiLexer.__init__s #4@@rtcd}tjd||dz }tjd||dz }|tj|zdz SrW)rrrrrs rsrzGenshiLexer.analyse_textsW  99\4 ( 4 #IB 99& - 9 #IBH))$//$66rtrrrrrrrrrrrrprrrs@rsr9r9sB D8G IMiO')<=I (CA7rtr9cJeZdZdZdZgdZdZdgZgdZdZ fdZ d Z xZ S) r=zK A lexer that highlights javascript code in genshi text templates. zJavaScript+Genshi Text)z js+genshitextz js+genshizjavascript+genshitextzjavascript+genshirj*.js)zapplication/x-javascript+genshiztext/x-javascript+genshiztext/javascript+genshihttps://genshi.edgewall.orgc 8t|ttfi|yr)rrprr;rs rsrpzJavascriptGenshiLexer.__init__s /EWErtc2tj|dz SN皙?r9rrs rsrz"JavascriptGenshiLexer.analyse_text''-44rtrrs@rsr=r=s; $D$GMhO+I (CF5rtr=cHeZdZdZdZddgZdZdgZdgZdZ fd Z d Z xZ S) r<zK A lexer that highlights CSS definitions in genshi text templates. zCSS+Genshi Textzcss+genshitextz css+genshirj*.cssztext/css+genshirbc 8t|ttfi|yr)rrprr;rs rsrpzCssGenshiLexer.__init__s ?>g>rtc2tj|dz Srergrs rsrzCssGenshiLexer.analyse_textrhrtrrs@rsr<r<s< D.GMiO"#I 'C?5rtr<cPeZdZdZdZgdZdgZdZgdZdgZ dZ fd Z d Z xZ S) r+z Subclass of the ERB lexer that highlights the unlexed data with the html lexer. Nested Javascript and CSS is highlighted too. RHTML)rhtmlzhtml+erbz html+rubyz*.rhtmlrjrRztext/html+rubyrhc 8t|ttfi|yr)rrprr*rs rsrpzRhtmlLexer.__init__  H88rtcVtj|dz }t|r|dz }|SNrg?)r*rr$rs rsrzRhtmlLexer.analyse_texts-  " "4 (4 /  % #IB rtr_rs@rsr+r+s< D0G IM4O!"I 'C9rtr+cHeZdZdZdZddgZdZdgZdgZdZ fd Z d Z xZ S) r,zo Subclass of `ErbLexer` which highlights data outside preprocessor directives with the `XmlLexer`. zXML+Rubyzxml+rubyzxml+erbrjrzapplication/xml+rubyrhc 8t|ttfi|yr)rrprr*rs rsrpzXmlErbLexer.__init__% 87w7rtcVtj|dz }t|r|dz }|Sr)r*rr%rs rsrzXmlErbLexer.analyse_text(-  " "4 (4 / $  #IB rtrrs@rsr,r,s< D9%GMiO'(I 'C8rtr,cHeZdZdZdZddgZdZdgZdgZdZ fd Z d Z xZ S) r-zS Subclass of `ErbLexer` which highlights unlexed data with the `CssLexer`. zCSS+Rubyzcss+rubyzcss+erbrjrjz text/css+rubyrhc 8t|ttfi|yr)rrprr*rs rsrpzCssErbLexer.__init__;rvrtc2tj|dz Srer*rrs rsrzCssErbLexer.analyse_text>$$T*T11rtrrs@rsr-r-/s< D9%GMiO !I 'C82rtr-cJeZdZdZdZgdZdZdgZgdZdZ fdZ d Z xZ S) r.z^ Subclass of `ErbLexer` which highlights unlexed data with the `JavascriptLexer`. zJavaScript+Ruby)zjavascript+rubyzjs+rubyzjavascript+erbzjs+erbrjra)zapplication/x-javascript+rubyztext/x-javascript+rubyztext/javascript+rubyrhc 8t|ttfi|yr)rrprr*rs rsrpzJavascriptErbLexer.__init__Q (>g>rtc2tj|dz Srer|rs rsrzJavascriptErbLexer.analyse_textTr}rtrrs@rsr.r.Bs8 DHGMhO)I (C?2rtr.cPeZdZdZdZdgZdgZdZgdZgdZ dZ fd Z d Z xZ S) r&z Subclass of `PhpLexer` that highlights unhandled data with the `HtmlLexer`. Nested Javascript and CSS is highlighted too. zHTML+PHPzhtml+phpz*.phtmlrj)*.phprrSrT *.php[345])zapplication/x-phpzapplication/x-httpd-phpzapplication/x-httpd-php3zapplication/x-httpd-php4zapplication/x-httpd-php5https://www.php.netc 8t|ttfi|yr)rrprrrs rsrpzHtmlPhpLexer.__init__krqrtcVtj|dz }t|r|dz }|Srs)rrr$rs rsrzHtmlPhpLexer.analyse_textns-  " "4 (4 /  % #IB rtr_rs@rsr&r&XsB DlG IM%OII C9rtr&cHeZdZdZdZdgZdZgdZdgZdZ fdZ d Z xZ S) r'zT Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`. zXML+PHPzxml+phprj)rrrzapplication/xml+phprc 8t|ttfi|yr)rrprrrs rsrpzXmlPhpLexer.__init__rvrtcVtj|dz }t|r|dz }|Sr)rrr%rs rsrzXmlPhpLexer.analyse_textrxrtrrs@rsr'r'us7 DkGM6O&'I C8rtr'cFeZdZdZdZdgZdZdgZdgZdZ fdZ d Z xZ S) r(zU Subclass of `PhpLexer` which highlights unmatched data with the `CssLexer`. zCSS+PHPzcss+phprjrjz text/css+phprc 8t|ttfi|yr)rrprrrs rsrpzCssPhpLexer.__init__rvrtc2tj|dz Srerrrs rsrzCssPhpLexer.analyse_textr}rtrrs@rsr(r(s9 DkGMiO I C82rtr(cJeZdZdZdZddgZdZdgZgdZdZ fd Z d Z xZ S) r)z` Subclass of `PhpLexer` which highlights unmatched data with the `JavascriptLexer`. zJavaScript+PHPzjavascript+phpzjs+phprjra)zapplication/x-javascript+phpztext/x-javascript+phpztext/javascript+phprc 8t|ttfi|yr)rrprrrs rsrpzJavascriptPhpLexer.__init__rrtc,tj|Srrrs rsrzJavascriptPhpLexer.analyse_texts$$T**rtrrs@rsr)r)s= D*GMhO(I C?+rtr)cHeZdZdZdZdgZdZgdZdgZdZ fdZ d Z xZ S) r0z Subclass of the `SmartyLexer` that highlights unlexed data with the `HtmlLexer`. Nested Javascript and CSS is highlighted too. z HTML+Smartyz html+smartyrj)rrSrTrztext/html+smartyrc 8t|ttfi|yr)rrprr/rs rsrpzHtmlSmartyLexer.__init__rrtcVtj|dz }t|r|dz }|Srs)r/rr$rs rsrzHtmlSmartyLexer.analyse_text-  % %d +d 2  % #IB rtrrs@rsr0r0s7 DoGM=O#$I #C<rtr0cHeZdZdZdZdgZdZddgZdgZdZ fd Z d Z xZ S) r1z] Subclass of the `SmartyLexer` that highlights unlexed data with the `XmlLexer`. z XML+Smartyz xml+smartyrjrrzapplication/xml+smartyrc 8t|ttfi|yr)rrprr/rs rsrpzXmlSmartyLexer.__init__r rtcVtj|dz }t|r|dz }|Sr)r/rr%rs rsrzXmlSmartyLexer.analyse_text-  % %d +d 2 $  #IB rtrrs@rsr1r1s< DnGM(O)*I #C;rtr1cHeZdZdZdZdgZdZddgZdgZdZ fd Z d Z xZ S) r2z] Subclass of the `SmartyLexer` that highlights unlexed data with the `CssLexer`. z CSS+Smartyz css+smartyrjrjrztext/css+smartyrc 8t|ttfi|yr)rrprr/rs rsrpzCssSmartyLexer.__init__r rtc2tj|dz Srer/rrs rsrzCssSmartyLexer.analyse_textrhrtrrs@rsr2r2s< DnGM(O"#I #C;5rtr2cLeZdZdZdZddgZdZddgZgdZd Z fd Z d Z xZ S) r3zd Subclass of the `SmartyLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Smartyzjavascript+smartyz js+smartyrjrar)zapplication/x-javascript+smartyztext/x-javascript+smartyztext/javascript+smartyrc 8t|ttfi|yr)rrprr/rs rsrpzJavascriptSmartyLexer.__init__r rtc2tj|dz Srerrs rsrz"JavascriptSmartyLexer.analyse_text rhrtrrs@rsr3r3sA D"K0GMw'O+I $CB5rtr3cTeZdZdZdZgdZgdZdZgdZddgZ d Z fd Z d Z xZ S) r5z Subclass of the `DjangoLexer` that highlights unlexed data with the `HtmlLexer`. Nested Javascript and CSS is highlighted too. zHTML+Django/Jinja)z html+djangoz html+jinja htmldjango)z *.html.j2z*.htm.j2z *.xhtml.j2z *.html.jinja2z *.htm.jinja2z*.xhtml.jinja2rjrRztext/html+djangoztext/html+jinjarc 8t|ttfi|yr)rrprr4rs rsrpzHtmlDjangoLexer.__init__rrtcVtj|dz }t|r|dz }|Srs)r4rr$rs rsrzHtmlDjangoLexer.analyse_text!rrtr_rs@rsr5r5s= D9GjIM4O#%67I AC<rtr5cReZdZdZdZddgZddgZdZdgZd d gZ d Z fd Z d Z xZ S)r7z] Subclass of the `DjangoLexer` that highlights unlexed data with the `XmlLexer`. zXML+Django/Jinjaz xml+djangoz xml+jinjaz*.xml.j2z *.xml.jinja2rjrzapplication/xml+djangozapplication/xml+jinjarc 8t|ttfi|yr)rrprr4rs rsrpzXmlDjangoLexer.__init__6r rtcVtj|dz }t|r|dz }|Sr)r4rr%rs rsrzXmlDjangoLexer.analyse_text9rrtr_rs@rsr7r7(sI D[)G^,IMiO)+BCI AC;rtr7cReZdZdZdZddgZddgZdZdgZd d gZ d Z fd Z d Z xZ S)r6z] Subclass of the `DjangoLexer` that highlights unlexed data with the `CssLexer`. zCSS+Django/Jinjaz css+djangoz css+jinjaz*.css.j2z *.css.jinja2rjrjztext/css+djangoztext/css+jinjarc 8t|ttfi|yr)rrprr4rs rsrpzCssDjangoLexer.__init__Nr rtc2tj|dz Srer4rrs rsrzCssDjangoLexer.analyse_textQrhrtr_rs@rsr6r6@sI D[)G^,IMiO"$45I AC;5rtr6cReZdZdZdZgdZddgZdZdgZgdZ d Z fd Z d Z xZ S) r8zd Subclass of the `DjangoLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Django/Jinja)zjavascript+djangoz js+djangozjavascript+jinjazjs+jinjaz*.js.j2z *.js.jinja2rjra)zapplication/x-javascript+djangozapplication/x-javascript+jinjaztext/x-javascript+djangoztext/x-javascript+jinjaztext/javascript+djangoztext/javascript+jinjarc 8t|ttfi|yr)rrprr4rs rsrpzJavascriptDjangoLexer.__init__ir rtc2tj|dz Srerrs rsrz"JavascriptDjangoLexer.analyse_textlrhrtr_rs@rsr8r8UsF %D/GM*IMhO*I BCB5rtr8cNeZdZdZdedfdefdefdefgdedfd eefgd Zy ) JspRootLexerzt Base for the `JspLexer`. Yields `Token.Other` for area outside of JSP tags. .. versionadded:: 0.7 <%\S?seczC[^<]+|\Z)rrN) rrrrrr"rr rrmrtrsrrpsWw & S   u  5M  GV $ !5#3 4 FrtrcFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rIz& Lexer for Java Server Pages. zJava Server Pagejspz*.jspzapplication/x-jspz.https://projects.eclipse.org/projects/ee4j.jsprc 8t|ttfi|yrrrprrrs rsrpzJspLexer.__init__r@rtcptj|dz }t|r|dz }d|vr d|vr|dz }|SNrrryrzr)r rr%rs rsrzJspLexer.analyse_textsC  # #D )D 0 $  #IB 4(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+)?(.*?)((?(4)%)\})z!(\$)(\w+)(\{(%)?)(.*?)((?(4)%)\})z(\$)(else|rof|fi)z%(\$\{(%)?)(.*?)((!)(.*?))?((?(2)%)\})#z[^\]#]rz\]#rz[\]#])rrcd|vryy)z.Evoque templates use $evoque, which is unique.z$evoquervNrmrs rsrzEvoqueLexer.analyse_texts   rt)rrrrrrrrrrrrrr"rrrrrrr rr rrrmrtrsrNrNsv DjG I'(I *CM IIE  W&& 2 e  !2!2 3 7 k4<<dk+ ,! k4<<deK0+? @ 2 k4<<dK(+7 8"8K#F G 5 k4{);llD$ = >5M9 >)) * W&& 0 W&& / w(( )  ?%FNrtrNcFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rOz^ Subclass of the `EvoqueLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Evoquez html+evoquerztext/html+evoquerrc 8t|ttfi|yr)rrprrNrs rsrpzEvoqueHtmlLexer.__init__rrtc,tj|SrrNrrs rsrzEvoqueHtmlLexer.analyse_text''--rt rrrrrrrrrrrprrrs@rsrOrOs9 DoGjO#$I *CM<.rtrOcFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rPz] Subclass of the `EvoqueLexer` that highlights unlexed data with the `XmlLexer`. z XML+Evoquez xml+evoquerzapplication/xml+evoquerrc 8t|ttfi|yr)rrprrNrs rsrpzEvoqueXmlLexer.__init__r rtc,tj|Srrrs rsrzEvoqueXmlLexer.analyse_textrrtrrs@rsrPrPs9 DnGiO)*I *CM;.rtrPceZdZdZdZdgZgZgZdZdZ e jZ de jfde jfdefd efd efd efd efd efdefdej$dfdejfdefdefdej*fdej*fdeej0eefdej6fdefdefgdej$fdej8fdej$fdej$fdej$dfgdZy )!rQz Coldfusion statements cfstatementcfs5https://www.adobe.com/products/coldfusion-family.htmlrjz//.*?\nz/\*(?:.|\n)*?\*/z\+\+|--z [-+*/^&=!]z <=|>=|<|>|==zmod\bz"(eq|lt|gt|lte|gte|not|is|and|or)\bz\|\||&&z\?rLstringr!\d+z(if|else|len|var|xml|default|break|switch|component|property|function|do|try|catch|in|continue|for|return|while|required|any|array|binary|boolean|component|date|guid|numeric|query|string|struct|uuid|case)\brzD(application|session|client|cookie|super|this|variables|arguments)\bz([a-z_$][\w.]*)(\s*)(\()z [a-z_$][\w.]*z[()\[\]{};:,.\\]rz""z#.+?#z[^"#]+rr)rrN)rrrrrrrrrrr IGNORECASErrrrrr rr!rrrrrrrrInterprrmrtrsrQrQs\ DgGII ACM MME ( '"3"3 4  " H % h ' x 2H =  " H  6==( +v}} % V MNU W$W%5%5 6 T ]]  ( dmmT; 7 9 t}} - + . TN3 8FMM " v}} %  & 6== ! 6==& )  9#FrtrQc eZdZdZdZdgZgZgZdZde fe dde fgde jd fd e fd e jd fd ee jeee jfdee jeee jfgde fdeeeeefde jdfe dde fde fgde jdfde jdfde jfgdZy)ColdfusionMarkupLexerz Coldfusion markup only Coldfusioncfrrtagsz<[^<>]*zz cfoutputz((?s)()(.+?)()z(?s)()z[^#<]+z (#)(.*?)(#)zrz (?s)<[^<>]*rrz--->z([^<-]|<(?!!---)|-(?!-->))+)rrrrN)rrrrrrrrrr"rrrrrrrrQrrrmrtrsrr2sD DfGII ACu  FO   w((+ 6  ( t||Z 8 8 dllE/$:DLL I KQdllE/$:DLL I  K    Xk53I&13 4 f 5 FO U # 5M  w((' 2 g'' 0 +W->-> ? ;"FrtrcBeZdZdZdZdgZddgZdgZdZdZ fd Z xZ S) rRz# Coldfusion markup in html zColdfusion HTMLcfmz*.cfmz*.cfmlzapplication/x-coldfusionrrjc 8t|ttfi|yr)rrprrrs rsrpzColdfusionHtmlLexer.__init__ls $9EWErt rrrrrrrrrrrprrs@rsrRrRas> DgG(#I+,I ACMFFrtrRc>eZdZdZdZdgZdgZgZdZdZ fdZ xZ S)rSz- Coldfusion markup/script components zColdfusion CFCcfcz*.cfcr2.0c 8t|ttfi|yr)rrprRrQrs rsrpzColdfusionCFCLexer.__init__{s ,oIIrtrrs@rsrSrSps8 DgG II ACMJJrtrScFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rWz) Lexer for Scalate Server Pages. zScalate Server Pagesspz*.sspzapplication/x-sspz"https://scalate.github.io/scalate/rc 8t|ttfi|yrrrs rsrpzSspLexer.__init__r@rtczd}tjd|r|dz }t|r|dz }d|vr d|vr|dz }|S)Nrz val \w+\s*:g333333?rXryrzr)rrr%rs rsrzSspLexer.analyse_textsJ  99^T * #IB $  #IB 4 D!:.GMhO*I &CArtr\ceZdZdZdZdZdgZdZdefde fde e je d fd e e jejejd fd e e je d fgd e fd e jdfde ee jdfde ejefde ee efde ee ej&fde ee edfedgd e fdedfde ee ej&e fde ee eedfdej0fedgdej&fdej&fdej&fgeddej4fd ej6fd!efgd"Zy#)$r]z Generic handlebars template lexer. Highlights only the Handlebars template tags (stuff between `{{` and `}}`). Everything else is left for a delegating lexer. Handlebarshttps://handlebarsjs.com/ handlebarsrrz \{\{!.*\}\}z (\{\{\{)(\s*)rz(\{\{)([#~/]+)([^\s}]*) (\{\{)(\s*)rz\}\}\}rz (~?)(\}\})z ([^\s}]+)(=)z(>)(\s*)(@partial-block)z(#?>)(\s*)([\w-]+)z (>)(\s*)(\()dynamic-partialgenericrz(lookup)(\s+)(\.|this)(\s+)z(lookup)(\s+)(\S+)rrz[\w-]+z[()/@a-zA-Z][\w-]*z\.[\w-]+z(this\/|\.\/|(\.\.\/)+)[\w-]+rrr)rrr rr N)rrrrrrrrr"rrSpecialrrr!rrrrrrrrrrr rrrrmrtrsr]r]+s D %CnGMu W %x> F( goov'7'79I9I JE S Xgooted6edd=e fgd"d4e d&fed*gd d4e d&fed>gd;d?ej2fgd@ej4fdAe fgdBej8fdCej:fgdDej>fdEej@fged;ed9ed:edgdFe fgdGe e e ej&e e d&fd=e!fgde fdHe e e ej&e e dfde fgdIZ"y)Jr`z% Lexer for Liquid templates. liquidz.https://www.rubydoc.info/github/Shopify/liquidz*.liquidrrrz (\{%)(\s*)z tag-or-blockz(\{\{)(\s*)([^\s}]+)r r outputrz(if|unless|elsif|case)(?=\s+) conditionz (when)(\s+)z end-of-block whitespacez(else)(\s*)(%\})rz!(capture)(\s+)([^\s%]+)(\s*)(%\})rz(comment)(\s*)(%\})rz(raw)(\s*)(%\})rawz(end(case|unless|if))(\s*)(%\})Nz(end([^\s%]+))(\s*)(%\})z"(cycle)(\s+)(?:([^\s:]*)(:))?(\s*)zvariable-tag-markupz([^\s%]+)(\s*)z tag-markup\}\}z\|filters)rrz([^\s|:]+)(:?)(\s*)z filter-markupz end-of-tagzdefault-param-markupz/([^\s=!><]+)(\s*)([=!><]=?)(\s*)(\S+)(\s*)(%\})z\b!z\bnot\bz*([\w.\'"]+)(\s+)(contains)(\s+)([\w.\'"]+)z generic-valuezend-at-whitespaceoperatorz(\s*)((=|!|>|<)=?)(\s*)z(\s*)(\bcontains\b)(\s*)z%\}rz param-markupz([^\s=:]+)(\s*)(=|:)z(\{\{)(\s*)([^\s}])(\s*)(\}\})rnumberkeyword,rzvariable-param-markupz\b(false|true)\brz(?<=\w)\.(?=\w)z'[^']*'z"[^"]*"z\d+\.\d+rz[ \t]+z (\{%)(\s*)(endcomment)(\s*)(%\})z(\{%)(\s*)(endraw)(\s*)(%\}))rrrr rrr)#rrrrrrrrrrrrrrrrReservedrrrrrrWordrrrr rrr!FloatIntegerrrrmrtrsr`r`s D :CjG IM@ t  H[*=~ N $ k:uT9/M N  DM  @  -w/?/? M Xg&6&6 C nlI > @ g&& K @& J2 dhh E$ ,K +/06 8$ dhh K 8) E  dhh K 8% A0 g&&j+ F P ( dhhj+ > H3 dhh D 2KM " $ : > M= @Z  L ! k6 * K +  [@h  L ! k#3 4 # dmm[* = P  i@x  K ( L ! * + y@D  N # L ! ? eD)4j( %i"@*!# $X   ' : eD)4j(-- %i"@B C I  L ! E@h  I  ' ( i@r  ' j(D* =v G ( j(-- fdej@fdefd efg d!efd"eeej&d#fe!d$gd!efd%eeej&d#fe!d$d&e"fgd'Z#y())raz Twig template lexer. It just highlights Twig code between the preprocessor directives, other data is left untouched by the lexer. Twigtwigzapplication/x-twighttps://twig.symfony.comrz[\\\w-]|[^\x00-\x7f]z(?:[\\_a-z]|[^\x00-\x7f])z(?:z)*rrrz \{\#.*?\#\}rzL(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})z(\{%)(-?\s*)(filter)(\s+)(rrrrz (\|)(\s*)(z(is)(\s+)(not)?(\s*)(z(?i)(true|false|none|null)\bz(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\bz(loop|block|parent)\bz\.z\.[0-9]+rrz4([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)rrrrrrr)rrrrN)$rrrrrrrrrrrrr _ident_char _ident_begin _ident_end _ident_innerr"rrrrrrrrrrrr!r rrrrrrmrtrsrarahsv DhG%&I $CM DD244KE*K/L+%,J*,Lu  goou - W %1 gootWdGOOW__dGToo' ( 6 gootWdGOOW__dGToo' ( ,L> ; gootWdDMM J  + gootW 5u > EN- 2<. * hdmm 4 6%l^1 5 gtWdDMM B D ,gnn =5   &t|| 4 4== ) \ !4== 1 & ! *FMM : *FMM : Dh O'(. 0% ,TN HT7??;V D J  TN 8D'//:F C J  ;   g9Frtrac@eZdZdZdZdgZdgZdgZdZdZ fdZ xZ S) rbz\ Subclass of the `TwigLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Twigz html+twigz*.twigztext/html+twigr)rc 8t|ttfi|yr)rrprrars rsrpzTwigHtmlLexer.__init__r&rtrrs@rsrbrbs9 DmG I!"I $CM::rtrbceZdZdZdZdZdgZdZdefde e je dfd e e eje e ee d fd e e eje e fd e e eje ee d fd e e eje fgde fde jdfdej$fdej&fdej(fdefdej,fdej,fde ee ee ee ee fg dedfdedfdedfgdZy)rcz Generic angular2 template lexer. Highlights only the Angular template tags (stuff between `{{` and `}}` and special attributes: '(event)=', '[property]=', '[(twoWayBinding)]='). Everything else is left for a delegating lexer. Angular2(https://angular.io/guide/template-syntaxng2z2.1z [^{([*#]+r  ngExpressionz&([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)r#z([([]+)([\w:.-]+)([\])]+)(\s*)z([*#])([\w:.-]+)(\s*)(=)(\s*)z([*#])([\w:.-]+)(\s*)z \s+(\|\s+)?rrz:?(true|false)rrrz[a-zA-Z][\w-]*(\(.*\))?z\.[\w-]+(\(.*\))?z-(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)r r!r")rr4r#N)rrrrrrrrr"rrrrrrrrr Booleanrrr!rrrmrtrsrcrcsw D 4CgGM5 !Xgoot>;hPT U  / k4>>; E G. k4>>44 H& R % k4>>4 8 :! *T " goov . / *FMM : *FMM :'(. 0( 7 !4== 1> hfdHdFD Q S! (ff % ff %  ( Q-Frtrcc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rdz` Subclass of the `Angular2Lexer` that highlights unlexed data with the `HtmlLexer`. zHTML + Angular2zhtml+ng2z*.ng2r2rc 8t|ttfi|yr)rrprrcrs rsrpzAngular2HtmlLexer.__init__ rrt) rrrrrrrrrrprrs@rsrdrd s1 DlG I 4CM>>rtrdcBeZdZdZdZdgZgdZdZdZfdZ dZ xZ S) rez Templated SQL lexer. z SQL+Jinjaz sql+jinja)z*.sqlz*.sql.j2z *.sql.jinja2rz2.13c 8t|ttfi|yr)rrprr4rs rsrpzSqlJinjaLexer.__init__% r rtcd}tjd|r|dz }tjd|r|dz }tjd|r|dz }|S)Nrz\{\{\s*ref\(.*\)\s*\}\}rz\{\{\s*source\(.*\)\s*\}\}rz\{%-?\s*macro \w+\(.*\)\s*-?%\}rrrs rsrzSqlJinjaLexer.analyse_text( sT  99/ 6 #IB 992D 9 $JB 997 > $JB rt) rrrrrrrrrrprrrs@rsrere s/ DmG5I -CM; rtre)wrrpygments.lexers.htmlrrpygments.lexers.javascriptrrpygments.lexers.cssrpygments.lexers.phprpygments.lexers.pythonr pygments.lexers.perlr pygments.lexers.jvmr r pygments.lexers.datar pygments.lexers.sqlrpygments.lexerrrrrrrrrrpygments.tokenrrrrrrrrr r!r"r# pygments.utilr$r%__all__r*r/rTrUrVr4r>r?r@rBrArCrDrErFrGrHr/rJrKrLrMr;rIr:r9r=r<r+r,r-r.r&r'r(r)r0r1r2r3r5r7r6r8rrIrNrOrPrQrrRrSrWrrXrYrZr[r\r]r^r_r`rarbrcrdrermrtrsrHs 4B((.*7*(,,,IIII> .]u]@7*7tQJQh>>$0R*Rj+*+\  > Ort