|edZddlZddlmZmZddlmZmZddlm 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-2023 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 SqlJinjaLexercpeZdZdZdZdZdgZdgZejdejZ dZ dZ d 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`. ERBzhttps://github.com/ruby/erberbzapplication/x-ruby-templatingz*(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)c Vddlm}|di||_tj|fi|y)Nr) RubyLexer)pygments.lexers.rubyrj ruby_lexerr__init__)selfoptionsrjs ;/usr/lib/python3/dist-packages/pygments/lexers/templates.pyrnzErbLexer.__init__Ds%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"lenrPreprocrmget_tokens_unprocessedr IndexError) rotexttokensstateidxvaltagdatar_idxr_tokenr_values rqrzErbLexer.get_tokens_unprocessedIse %%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)Nrwrx皙?rkrs rq analyse_textzErbLexer.analyse_texts 4/?@-](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 rqrzSmartyLexer.analyse_textsk  99. 5 $JB 99. 5 $JB 998$ ? $JB 99\4 ( $JB rrN)!rrrrrrr filenamesrr MULTILINEDOTALLflagsr"rrr~rrrFunctionrVariablerrConstantr!r DoubleSingle Attributerrrkrrrqr/r/sQ D #CjG I'(I 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 rrr/ceZdZdZdZdZdgZddgZejejzZ dZ de fd eej eej fd eej efd e zd zeej ej$ej ed fd e zdzeej ej$ej fdedfge ej(fdedfde zdzeeej(dfdedfedgdefdedfde zdzej$fedgdefeddedfgdedfdefdefd ej4fd!ej6fd"efd#efd$ej<fdedfd%edfd&edfdedfdedfdedfgd'Zd(Z y))*rTz Generic Velocity template lexer. Just highlights velocity directives and variable references, other data is left untouched by the lexer. Velocityzhttps://velocity.apache.org/velocity*.vm*.fhtmlrz[^{#$]+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 rqrzVelocityLexer.analyse_texts  998$ J $JB 995tRYY G $JB 99:D")) L $JB 99015 7 $JB rrN)!rrrrrrrrrrrr identifierr"rrr~rrrrrrrrr rrr!rrrrrkrrrqrTrTs0 D (ClG#I 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 rrrTc:eZdZdZdZdgZddgZdgZfdZxZ S)rUza Subclass of the `VelocityLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Velocityz html+velocity*.htmlrztext/html+velocityc 8t|ttfi|yN)superrnrrTrorp __class__s rqrnzVelocityHtmlLexer.__init__* M=W=rr) rrrrrralias_filenamesrrn __classcell__rs@rqrUrUs3 DG+O%&I>>rrrUc@eZdZdZdZdgZddgZdgZfdZdZ xZ S) rVz` Subclass of the `VelocityLexer` that highlights unlexed data with the `XmlLexer`. z XML+Velocityz xml+velocity*.xmlrzapplication/xml+velocityc 8t|ttfi|yr)rrnrrTrs rqrnzVelocityXmlLexer.__init__:s =`_ 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-jinjar\{\{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 rqrzDjangoLexer.analyse_texts\  99-t 4 @ #IB 99)4 0 < #IB 99^T * 6 #IB rrN)rrrrrrrrrSrr"rr~rrrrrrPseudoBuiltinrr rrr!rrrrrkrrrqr4r4Ds+ D!G24IJI 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  ;   c7Frrrr4ceZdZdZdZdZdgZddgZdgZdd e fd e e je e je jeee jfd e e je je jeee jfd e e je jeee jfd e e je jeee jfde jfde e jeee jfdefde e jeeefde eefg iZy)r>z Generic myghty templates lexer. Code that isn't Myghty markup is yielded as `Token.Other`. .. versionadded:: 0.6 Myghtyzhttp://www.myghty.org/myghtyz*.myt autodelegatezapplication/x-myghtyrr3(?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>sa D "CjG.)I'(I  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% Frrr>c2eZdZdZdZdgZdgZfdZxZS)r?zy Subclass of the `MyghtyLexer` that highlights unlexed data with the `HtmlLexer`. .. versionadded:: 0.6 z HTML+Myghtyz html+myghtyztext/html+myghtyc 8t|ttfi|yr)rrnrr>rs rqrnzMyghtyHtmlLexer.__init__ K;7;rr rrrrrrrrnrrs@rqr?r?s( DoG#$I<rs rqrnzMyghtyXmlLexer.__init__ ;:':rrrrs@rqr@r@s( DnG)*I;;rrr@c6eZdZdZdZddgZgdZfdZxZS)rBz Subclass of the `MyghtyLexer` that highlights unlexed data with the `JavascriptLexer`. .. versionadded:: 0.6 zJavaScript+Myghtyzjavascript+myghtyz js+myghty)zapplication/x-javascript+myghtyztext/x-javascript+myghtyztext/javascript+mygthyc 8t|ttfi|yr)rrnrr>rs rqrnzMyghtyJavascriptLexer.__init__ +AArrrrs@rqrBrBs, D"K0G+IBBrrrBc2eZdZdZdZdgZdgZfdZxZS)rAzx Subclass of the `MyghtyLexer` that highlights unlexed data with the `CssLexer`. .. versionadded:: 0.6 z CSS+Myghtyz css+myghtyztext/css+myghtyc 8t|ttfi|yr)rrnrr>rs rqrnzMyghtyCssLexer.__init__rrrrrs@rqrArAs( DnG"#I;;rrrAceZdZdZdZdZdgZgdZdgZdde fd e e je je jfd e e je e je jeee jfd e e jd d d eee jfd e e je jeee jfde e je jeee jfde jfde e jeee jfde fde e jeeefde eeefg iZdZy )rCz Generic mason templates lexer. Stolen from Myghty lexer. Code that isn't Mason markup is HTML. .. versionadded:: 1.4 Masonzhttp://www.masonhq.com/mason)z*.mz*.mhtmlz*.mcz*.mi autohandlerdhandlerzapplication/x-masonrrz(?s)(<%doc>)(.*?)()rz%(?s)(<%(\w+)(.*?)(>))(.*?)()Nz(?s)(<&[^|])(.*?)(,.*?)?(&>)rrrrrrcd}tjd|d}|Stjd|tjd}|S)Nrzg?z<&.+&>g)\(?r)rresults rqrzMasonLexer.analyse_text6sH 99,d 3 ?F YYy$ 2 >F rr)rrrrrrrrrrrrrr Multilinerrrr r"rrrrrkrrrqrCrCs D #CiGMI&'I  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(; =' FBrrrCc0eZdZdZdZdZdgZdgZdgZde e je jeefde e je jeeefd e e je j$e jfd e j&fd e e jej*d fd e e jej*e jfde jdfde e jeee jfde e jeee jfde eefde fg de jfdej*fed gde ej0e efde jdfde fgdedfdedfdedfgdZy)rDz Generic mako templates lexer. Code that isn't Mako markup is yielded as `Token.Other`. .. versionadded:: 0.7 Makozhttp://www.makotemplates.org/makoz*.maozapplication/x-makoz(\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)rrrrrrrrrrrrrr~rr"rr rrrrrrrr rrkrrrqrDrD?s D )ChG I%&I/ 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 %  ( [2FrrrDc2eZdZdZdZdgZdgZfdZxZS)rEzw Subclass of the `MakoLexer` that highlights unlexed data with the `HtmlLexer`. .. versionadded:: 0.7 z HTML+Makoz html+makoztext/html+makoc 8t|ttfi|yr)rrnrrDrs rqrnzMakoHtmlLexer.__init__ I99rrrrs@rqrErEs( DmG!"I::rrrEc2eZdZdZdZdgZdgZfdZxZS)rFzv Subclass of the `MakoLexer` that highlights unlexed data with the `XmlLexer`. .. versionadded:: 0.7 zXML+Makozxml+makozapplication/xml+makoc 8t|ttfi|yr)rrnrrDrs rqrnzMakoXmlLexer.__init__ 988rrrrs@rqrFrFs( DlG'(I99rrrFc6eZdZdZdZddgZgdZfdZxZS)rGz} Subclass of the `MakoLexer` that highlights unlexed data with the `JavascriptLexer`. .. versionadded:: 0.7 zJavaScript+Makozjavascript+makozjs+mako)zapplication/x-javascript+makoztext/x-javascript+makoztext/javascript+makoc 8t|ttfi|yr)rrnrrDrs rqrnzMakoJavascriptLexer.__init__s )?w?rrrrs@rqrGrGs, D ),G)I@@rrrGc2eZdZdZdZdgZdgZfdZxZS)rHzv Subclass of the `MakoLexer` that highlights unlexed data with the `CssLexer`. .. versionadded:: 0.7 zCSS+Makozcss+makoz text/css+makoc 8t|ttfi|yr)rrnrrDrs rqrnzMakoCssLexer.__init__rrrrrs@rqrHrHs( DlG !I99rrrHceZdZdZdZy)CheetahPythonLexerzI Lexer for handling Cheetah's special $ tokens in Python syntax. c#Ktdi|j}|j|D]5\}}}|tjk(r|dk(rt j }|||f7yw)N$rk)r rprr#rrr~)rorpylexerpostype_values rqrz)CheetahPythonLexer.get_tokens_unprocesseds`- -!(!?!?!E $ C # ue# # $sA A"N)rrrrrrkrrrqr$r$s $rrr$cXeZdZdZdZdZddgZddgZdd gZd d e e fd e fd e jfde jfde e je e e jfde e je e fde e je e e 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/ Cheetahzhttp://www.cheetahtemplate.org/cheetahspitfirez*.tmplz*.sptzapplication/x-cheetahzapplication/x-spitfirerz (##[^\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)rrrrrrrrrrrr~rr$r"rrrkrrrqrJrJs D +C*%G7#I(*BCI  w " ' * "GOO 4  ) *w.@(A( *( goou-?'@ A C % goou-?'@oo' ( TN/ FrrrJc6eZdZdZdZgdZddgZfdZxZS)rKz_ Subclass of the `CheetahLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Cheetah)z html+cheetahz html+spitfire htmlcheetahztext/html+cheetahztext/html+spitfirec 8t|ttfi|yr)rrnrrJrs rqrnzCheetahHtmlLexer.__init__ s LG$&:;I==rrrKc6eZdZdZdZddgZddgZfdZxZS)rLz^ Subclass of the `CheetahLexer` that highlights unlexed data with the `XmlLexer`. z XML+Cheetahz xml+cheetahz xml+spitfirezapplication/xml+cheetahzapplication/xml+spitfirec 8t|ttfi|yr)rrnrrJrs rqrnzCheetahXmlLexer.__init__ <;7;rrrrs@rqrLrL s. Dn-G*,FGI<I% xg6 7 8D'//:K H J     D& ! #U;%7 @ 0 gtU;%7 8& B $gv 6 &$(H& Q  ' goou['97?? K M , ]]  !Frrr;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 (')(.*?)(')rz py:[\w-]+\s*=r" attr-dstring' attr-sstringz[^\s>]*stringsz[^"'$]+r:z(?rrr@rBrCrN)rrrrrrrr"rrr~rr rrrrrr rrrkrrrqr<r<Rs IIE  % goou['97?? K M8 ? #TXXw 7 "DHHe 4 J  e   TN T^^X 6 & ) HVU;-?H& Q HVU;-?H& Q  ( TN t~~x 8 T^^V 4 & )  &. ) &. )  ( && ! I  &M && ! I  &M  J  ' goou['97?? K M - ]]  _5Frrr<cBeZdZdZdZddgZgdZdgZfdZdZ xZ S) r:z A lexer that highlights `genshi `_ and `kid `_ kid HTML templates. z HTML+Genshiz html+genshizhtml+kidr*.htm*.xhtmlztext/html+genshic 8t|ttfi|yr)rrnrr<rs rqrnzHtmlGenshiLexer.__init__s $5AArrcd}tjd||dz }tjd||dz }|tj|zdz SNrz \$\{.*?\}皙?zpy:(.*?)=["\']r)rrrrrs rqrzHtmlGenshiLexer.analyse_textsW  99\4 ( 4 #IB 99& - 9 #IBI**400477rrrrs@rqr:r:s1 Dj)G4O#$IB8rrr:cHeZdZdZdZgdZdgZdgZddgZfdZ d Z xZ S) r9z A lexer that highlights `genshi `_ and `kid `_ kid XML templates. Genshi)genshikidz xml+genshizxml+kidz*.kidrzapplication/x-genshizapplication/x-kidc 8t|ttfi|yr)rrnrr<rs rqrnzGenshiLexer.__init__s #4@@rrcd}tjd||dz }tjd||dz }|tj|zdz SrJ)rrrrrs rqrzGenshiLexer.analyse_textsW  99\4 ( 4 #IB 99& - 9 #IBH))$//$66rr rrrrrrrrrrnrrrs@rqr9r9s8 D8G IiO')<=IA7rrr9cBeZdZdZdZgdZdgZgdZfdZdZ xZ S)r=zK A lexer that highlights javascript code in genshi text templates. zJavaScript+Genshi Text)z js+genshitextz js+genshizjavascript+genshitextzjavascript+genshi*.js)zapplication/x-javascript+genshiztext/x-javascript+genshiztext/javascript+genshic 8t|ttfi|yr)rrnrr;rs rqrnzJavascriptGenshiLexer.__init__s /EWErrc2tj|dz SN皙?r9rrs rqrz"JavascriptGenshiLexer.analyse_text''-44rrrrs@rqr=r=s/ $D$GhO+IF5rrr=c@eZdZdZdZddgZdgZdgZfdZdZ xZ S) r<zK A lexer that highlights CSS definitions in genshi text templates. zCSS+Genshi Textzcss+genshitextz css+genshi*.cssztext/css+genshic 8t|ttfi|yr)rrnrr;rs rqrnzCssGenshiLexer.__init__s ?>g>rrc2tj|dz SrWrYrs rqrzCssGenshiLexer.analyse_textrZrrrrs@rqr<r<s2 D.GiO"#I?5rrr<cHeZdZdZdZgdZdgZgdZdgZfdZ dZ 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*.rhtmlrEztext/html+rubyc 8t|ttfi|yr)rrnrr*rs rqrnzRhtmlLexer.__init__ H88rrcVtj|dz }t|r|dz }|SNrg?)r*rr$rs rqrzRhtmlLexer.analyse_texts-  " "4 (4 /  % #IB rrrRrs@rqr+r+s2 D0G I4O!"I9rrr+c@eZdZdZdZddgZdgZdgZfdZdZ xZ S) r,zo Subclass of `ErbLexer` which highlights data outside preprocessor directives with the `XmlLexer`. zXML+Rubyzxml+rubyzxml+erbrzapplication/xml+rubyc 8t|ttfi|yr)rrnrr*rs rqrnzXmlErbLexer.__init__  87w7rrcVtj|dz }t|r|dz }|Sr)r*rr%rs rqrzXmlErbLexer.analyse_text -  " "4 (4 / $  #IB rrrrs@rqr,r,s2 D9%GiO'(I8rrr,c@eZdZdZdZddgZdgZdgZfdZdZ xZ S) r-zS Subclass of `ErbLexer` which highlights unlexed data with the `CssLexer`. zCSS+Rubyzcss+rubyzcss+erbr\z text/css+rubyc 8t|ttfi|yr)rrnrr*rs rqrnzCssErbLexer.__init__rhrrc2tj|dz SrWr*rrs rqrzCssErbLexer.analyse_text!$$T*T11rrrrs@rqr-r-s2 D9%GiO !I82rrr-cBeZdZdZdZgdZdgZgdZfdZdZ xZ S)r.z^ Subclass of `ErbLexer` which highlights unlexed data with the `JavascriptLexer`. zJavaScript+Ruby)zjavascript+rubyzjs+rubyzjavascript+erbzjs+erbrT)zapplication/x-javascript+rubyztext/x-javascript+rubyztext/javascript+rubyc 8t|ttfi|yr)rrnrr*rs rqrnzJavascriptErbLexer.__init__2 (>g>rrc2tj|dz SrWrnrs rqrzJavascriptErbLexer.analyse_text5rorrrrs@rqr.r.%s, DHGhO)I?2rrr.cHeZdZdZdZdgZdgZgdZgdZfdZ dZ xZ S) r&z Subclass of `PhpLexer` that highlights unhandled data with the `HtmlLexer`. Nested Javascript and CSS is highlighted too. zHTML+PHPzhtml+phpz*.phtml)*.phprrFrG *.php[345])zapplication/x-phpzapplication/x-httpd-phpzapplication/x-httpd-php3zapplication/x-httpd-php4zapplication/x-httpd-php5c 8t|ttfi|yr)rrnrrrs rqrnzHtmlPhpLexer.__init__IrcrrcVtj|dz }t|r|dz }|Sre)rrr$rs rqrzHtmlPhpLexer.analyse_textLs-  " "4 (4 /  % #IB rrrRrs@rqr&r&9s6 DlG I%OII9rrr&c@eZdZdZdZdgZgdZdgZfdZdZ xZ S)r'zT Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`. zXML+PHPzxml+php)rrurvzapplication/xml+phpc 8t|ttfi|yr)rrnrrrs rqrnzXmlPhpLexer.__init__]rhrrcVtj|dz }t|r|dz }|Sr)rrr%rs rqrzXmlPhpLexer.analyse_text`rjrrrrs@rqr'r'Ss- DkG6O&'I8rrr'c>eZdZdZdZdgZdgZdgZfdZdZ xZ S)r(zU Subclass of `PhpLexer` which highlights unmatched data with the `CssLexer`. zCSS+PHPzcss+phpr\z text/css+phpc 8t|ttfi|yr)rrnrrrs rqrnzCssPhpLexer.__init__qrhrrc2tj|dz SrWrrrs rqrzCssPhpLexer.analyse_texttrorrrrs@rqr(r(gs/ DkGiO I82rrr(cBeZdZdZdZddgZdgZgdZfdZdZ xZ S) r)z` Subclass of `PhpLexer` which highlights unmatched data with the `JavascriptLexer`. zJavaScript+PHPzjavascript+phpzjs+phprT)zapplication/x-javascript+phpztext/x-javascript+phpztext/javascript+phpc 8t|ttfi|yr)rrnrrrs rqrnzJavascriptPhpLexer.__init__rrrrc,tj|Srrrs rqrzJavascriptPhpLexer.analyse_texts$$T**rrrrs@rqr)r)xs1 D*GhO(I?+rrr)c@eZdZdZdZdgZgdZdgZfdZdZ 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+smarty)rrFrGrztext/html+smartyc 8t|ttfi|yr)rrnrr/rs rqrnzHtmlSmartyLexer.__init__rrrcVtj|dz }t|r|dz }|Sre)r/rr$rs rqrzHtmlSmartyLexer.analyse_text-  % %d +d 2  % #IB rrrrs@rqr0r0s- DoG=O#$I<rrr0c@eZdZdZdZdgZddgZdgZfdZdZ xZ S) r1z] Subclass of the `SmartyLexer` that highlights unlexed data with the `XmlLexer`. z XML+Smartyz xml+smartyrrzapplication/xml+smartyc 8t|ttfi|yr)rrnrr/rs rqrnzXmlSmartyLexer.__init__rrrcVtj|dz }t|r|dz }|Sr)r/rr%rs rqrzXmlSmartyLexer.analyse_text-  % %d +d 2 $  #IB rrrrs@rqr1r1s2 DnG(O)*I;rrr1c@eZdZdZdZdgZddgZdgZfdZdZ xZ S) r2z] Subclass of the `SmartyLexer` that highlights unlexed data with the `CssLexer`. z CSS+Smartyz css+smartyr\rztext/css+smartyc 8t|ttfi|yr)rrnrr/rs rqrnzCssSmartyLexer.__init__rrrc2tj|dz SrWr/rrs rqrzCssSmartyLexer.analyse_textrZrrrrs@rqr2r2s2 DnG(O"#I;5rrr2cDeZdZdZdZddgZddgZgdZfdZd Z xZ S) r3zd Subclass of the `SmartyLexer` that highlights unlexed data with the `JavascriptLexer`. zJavaScript+Smartyzjavascript+smartyz js+smartyrTr)zapplication/x-javascript+smartyztext/x-javascript+smartyztext/javascript+smartyc 8t|ttfi|yr)rrnrr/rs rqrnzJavascriptSmartyLexer.__init__rrrc2tj|dz SrWrrs rqrz"JavascriptSmartyLexer.analyse_textrZrrrrs@rqr3r3s5 D"K0Gw'O+IB5rrr3cLeZdZdZdZgdZgdZgdZddgZfdZ 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.jinja2rEztext/html+djangoztext/html+jinjac 8t|ttfi|yr)rrnrr4rs rqrnzHtmlDjangoLexer.__init__rrrcVtj|dz }t|r|dz }|Sre)r4rr$rs rqrzHtmlDjangoLexer.analyse_textrrrrRrs@rqr5r5s3 D9GjI4O#%67I<rrr5cJeZdZdZdZddgZddgZdgZdd gZfd 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.jinja2rzapplication/xml+djangozapplication/xml+jinjac 8t|ttfi|yr)rrnrr4rs rqrnzXmlDjangoLexer.__init__rrrcVtj|dz }t|r|dz }|Sr)r4rr%rs rqrzXmlDjangoLexer.analyse_textrrrrRrs@rqr7r7s? D[)G^,IiO)+BCI;rrr7cJeZdZdZdZddgZddgZdgZdd gZfd 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.jinja2r\ztext/css+djangoztext/css+jinjac 8t|ttfi|yr)rrnrr4rs rqrnzCssDjangoLexer.__init__rrrc2tj|dz SrWr4rrs rqrzCssDjangoLexer.analyse_textrZrrrRrs@rqr6r6 s? D[)G^,IiO"$45I;5rrr6cJeZdZdZdZgdZddgZdgZgdZfdZ 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.jinja2rT)zapplication/x-javascript+djangozapplication/x-javascript+jinjaztext/x-javascript+djangoztext/x-javascript+jinjaztext/javascript+djangoztext/javascript+jinjac 8t|ttfi|yr)rrnrr4rs rqrnzJavascriptDjangoLexer.__init__1rrrc2tj|dz SrWrrs rqrz"JavascriptDjangoLexer.analyse_text4rZrrrRrs@rqr8r8s9 %D/GM*IhO*IB5rrr8cNeZdZdZdedfdefdefdefgdedfd 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 rrkrrrqrr8sWw & S   u  5M  GV $ !5#3 4 Frrrc>eZdZdZdZdgZdgZdgZfdZdZ xZ S)rIzA Lexer for Java Server Pages. .. versionadded:: 0.7 zJava Server Pagejspz*.jspzapplication/x-jspc 8t|ttfi|yrrrnrrrs rqrnzJspLexer.__init__\r4rrcptj|dz }t|r|dz }d|vr d|vr|dz }|SNrrrwrxr)r rr%rs rqrzJspLexer.analyse_text_sC  # #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$evoquertNrkrs rqrzEvoqueLexer.analyse_texts   rr)rrrrrrrrrrrr"rrrrrrr rr rrrkrrrqrNrNhsl DjG I'(I 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(( )  ?%FNrrrNc>eZdZdZdZdgZdgZdgZfdZdZ xZ S)rOzy Subclass of the `EvoqueLexer` that highlights unlexed data with the `HtmlLexer`. .. versionadded:: 1.1 z HTML+Evoquez html+evoquerztext/html+evoquec 8t|ttfi|yr)rrnrrNrs rqrnzEvoqueHtmlLexer.__init__rrrc,tj|SrrNrrs rqrzEvoqueHtmlLexer.analyse_text''--rrrrs@rqrOrOs/ DoG I#$I<.rrrOc>eZdZdZdZdgZdgZdgZfdZdZ xZ S)rPzx Subclass of the `EvoqueLexer` that highlights unlexed data with the `XmlLexer`. .. versionadded:: 1.1 z XML+Evoquez xml+evoquerzapplication/xml+evoquec 8t|ttfi|yr)rrnrrNrs rqrnzEvoqueXmlLexer.__init__rrrc,tj|Srrrs rqrzEvoqueXmlLexer.analyse_textrrrrrs@rqrPrPs/ DnG I)*I;.rrrPceZdZdZdZdgZgZgZejZ de jfde jfdefdefdefd efd efd efd efd ej dfdejfdefdefdej&fdej&fdeej,eefdej2fdefdefgdej fdej4fdej fdej fd ej dfgdZy)rQz Coldfusion statements cfstatementcfsz//.*?\nz/\*(?:.|\n)*?\*/z\+\+|--z [-+*/^&=!]z <=|>=|<|>|==zmod\bz"(eq|lt|gt|lte|gte|not|is|and|or)\bz\|\||&&z\?r?stringr\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)rrrrrrrrr IGNORECASErrrrrr rr!rrrrrrrrInterprrkrrrqrQrQsR DgGII 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#FrrrQc eZdZdZdZdgZgZgZdefe ddefgde jdfd e fd e jd fd ee jeee jfd ee jeee jfgdefdeeeeefde jdfe ddefdefgde jdfde jdfde jfgdZy)ColdfusionMarkupLexerz Coldfusion markup only Coldfusioncfrtagsz<[^<>]*zz cfoutputz((?s)()(.+?)()z(?s)()z[^#<]+z (#)(.*?)(#)zrz (?s)<[^<>]*rrz--->z([^<-]|<(?!!---)|-(?!-->))+)rrrrN)rrrrrrrrr"rrrrrrrrQrrrkrrrqrrs? DfGIIu  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->-> ? ;"Frrrc:eZdZdZdZdgZddgZdgZfdZxZ S)rRz# Coldfusion markup in html zColdfusion HTMLcfmz*.cfmz*.cfmlzapplication/x-coldfusionc 8t|ttfi|yr)rrnrrrs rqrnzColdfusionHtmlLexer.__init__.s $9EWErr rrrrrrrrrnrrs@rqrRrR%s4 DgG(#I+,IFFrrrRc6eZdZdZdZdgZdgZgZfdZxZ S)rSzH Coldfusion markup/script components .. versionadded:: 2.0 zColdfusion CFCcfcz*.cfcc 8t|ttfi|yr)rrnrRrQrs rqrnzColdfusionCFCLexer.__init__=s ,oIIrrrrs@rqrSrS2s. DgG IIJJrrrSc>eZdZdZdZdgZdgZdgZfdZdZ xZ S)rWzD Lexer for Scalate Server Pages. .. versionadded:: 1.4 zScalate Server Pagesspz*.sspzapplication/x-sspc 8t|ttfi|yrrrs rqrnzSspLexer.__init__Lr4rrczd}tjd|r|dz }t|r|dz }d|vr d|vr|dz }|S)Nrz val \w+\s*:g333333?rKrwrxr)rrr%rs rqrzSspLexer.analyse_textOsJ  99^T * #IB $  #IB 4eZdZdZdZdgZdgZdgZfdZdZ xZ S)rXzW Lexer for `Tea Templates `_. .. versionadded:: 1.5 Teateaz*.teaz text/x-teac 8t|ttfi|yr)rrnrrrs rqrnzTeaTemplateLexer.__init__{s #7C7Crrcptj|dz }t|r|dz }d|vr d|vr|dz }|Sr)r rr%rs rqrzTeaTemplateLexer.analyse_text~sC  & &t ,t 3 $  #IB 4eZdZdZdZdgZdgZdgZfdZdZ xZ S)r[zz Subclass of the `LassoLexer` which highlights unhandled data with the `CssLexer`. .. versionadded:: 1.6 z CSS+Lassoz css+lassor\ztext/css+lassoc Bd|d<t|ttfi|yNTrequiredelimiters)rrnrrrs rqrnzLassoCssLexer.__init__s"'+#$ :99rrc~tj|dz }tjd|r|dz }d|vr|dz }|S)NrXz \w+:[^;]+;rzpadding:)rrrrrs rqrzLassoCssLexer.analyse_textsD  $ $T *T 1 99]D ) #IB   #IB rrrrs@rqr[r[s/ DmGiO!"I:rrr[cBeZdZdZdZddgZdgZgdZfdZdZ xZ S) r\z Subclass of the `LassoLexer` which highlights unhandled data with the `JavascriptLexer`. .. versionadded:: 1.6 zJavaScript+Lassozjavascript+lassozjs+lassorT)zapplication/x-javascript+lassoztext/x-javascript+lassoztext/javascript+lassoc Bd|d<t|ttfi|yr)rrnrrrs rqrnzLassoJavascriptLexer.__init__s"'+#$ *@@rrc6tj|dz }|SrW)rrrs rqrz!LassoJavascriptLexer.analyse_texts  $ $T *T 1 rrrrs@rqr\r\s2 D!:.GhO*IArrr\ceZdZdZdZdZdgZdefdefde eje dfd e eje je jdfd e eje dfgd e fd ejd fde e ejd fde ejefde ee efde ee ej$fde ee edfedgd e fded fde ee ej$e fde ee eedfdej.fedgdej$fdej$fdej$fgeddej2fdej4fd e fgd!Zy")#r]z Generic handlebars template lexer. Highlights only the Handlebars template tags (stuff between `{{` and `}}`). Everything else is left for a delegating lexer. .. versionadded:: 2.0 Handlebarszhttps://handlebarsjs.com/ handlebarsrz \{\{!.*\}\}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)rrrrrN)rrrrrrrr"rrSpecialrr~r!rrrrrrrrrrr rrrrkrrrqr]r]s D %CnGu W %x> F( goov'7'79I9I JE S XgooteZdZdZdZgdZgdZddgZfdZxZ S)r_z Subclass of the `DjangoLexer` that highlights unlexed data with the `YamlLexer`. Commonly used in Saltstack salt states. .. versionadded:: 2.0 z YAML+Jinja)z yaml+jinjasaltsls)z*.slsz *.yaml.j2z*.yml.j2z *.yaml.jinja2z *.yml.jinja2ztext/x-yaml+jinjaz text/x-slsc 8t|ttfi|yr)rrnr r4rs rqrnzYamlJinjaLexer.__init__Zrrrrrs@rqr_r_Ks- D+GSI$l3I<ej0fgd?ej2fd@e fgdAej6fdBej8fgdCej<fdDej>fged:ed8ed9edgdEe fgdFe e e ej$e e d%fd<]+)(\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*)(%\}))rrrrrrr)"rrrrrrrrrrrrrrrReservedrrrrrrWordrrrr rrr!FloatIntegerrrrkrrrqr`r`^s D :CjG I@ 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(-- <=]=?)rrrrrrr)rrrrN)"rrrrrrrrrrr _ident_char _ident_begin _ident_end _ident_innerr"rr~rrrrrrrrrr!r rrrrrrkrrrqrara,s` DhG%&I DD244KE*K/L+%,J*,Lu  goou - W %1 gootWdGOOW__dGToo' ( 6 gootWdGOOW__dGToo' ( / = gootWdDMM J  + gootW 5u > EN- 2 , hdmm 4 6 (< 7 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  ;   g9Frrrac8eZdZdZdZdgZdgZdgZfdZxZ S)rbzw Subclass of the `TwigLexer` that highlights unlexed data with the `HtmlLexer`. .. versionadded:: 2.0 z HTML+Twigz html+twigz*.twigztext/html+twigc 8t|ttfi|yr)rrnrrars rqrnzTwigHtmlLexer.__init__rrrrrs@rqrbrbs/ DmG I!"I::rrrbceZdZdZdZdZdgZdefdee je dfdee e je e ee d fd ee e je e fd ee e je ee d fd ee e je fgd e fde jdfdej"fdej$fdej&fdefde j*fde j*fdeee ee ee ee fg dedfdedfdedfgdZy)rca 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. .. versionadded:: 2.1 Angular2z(https://angular.io/guide/template-syntaxng2z [^{([*#]+r ngExpressionz&([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)rz([([]+)([\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*)rrr)rrrN)rrrrrrrr"rrr~rrrrrr Booleanrrr!rrrkrrrqrcrcsr D 4CgG5 !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-Frrrcc2eZdZdZdZdgZdgZfdZxZS)rdz{ Subclass of the `Angular2Lexer` that highlights unlexed data with the `HtmlLexer`. .. versionadded:: 2.0 zHTML + Angular2zhtml+ng2z*.ng2c 8t|ttfi|yr)rrnrrcrs rqrnzAngular2HtmlLexer.__init__rrr) rrrrrrrrnrrs@rqrdrds' DlG I>>rrrdc:eZdZdZdZdgZgdZfdZdZxZ S)rez: Templated SQL lexer. .. versionadded:: 2.13 z SQL+Jinjaz sql+jinja)z*.sqlz*.sql.j2z *.sql.jinja2c 8t|ttfi|yr)rrnrr4rs rqrnzSqlJinjaLexer.__init__rrrcd}tjd|r|dz }tjd|r|dz }tjd|r|dz }|S)Nrz\{\{\s*ref\(.*\)\s*\}\}rz\{\{\s*source\(.*\)\s*\}\}rz\{%-?\s*macro \w+\(.*\)\s*-?%\}rrrs rqrzSqlJinjaLexer.analyse_textsT  99/ 6 #IB 992D 9 $JB 997 > $JB rr) rrrrrrrrnrrrs@rqreres% DmG5I; rrre)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;r<r:r9r=r<r+r,r-r.r&r'r(r)r0r1r2r3r5r7r6r8rrIrNrOrPrQrrRrSrWrrXrYrZr[r\r]r^r_r`rarbrcrdrerkrrrqr.s 4B((.*7*(,,,IIII> .\u\~6*6rPJPf > > ,P*Pf,*,^  > Orr