YBFj'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~deZiGddeZjGddeZkGddeZlGddeZmGddeZnGddeZoGddeZpGddeZqGddeZrGddeZsGddeZtGddeZuGddeZvdS)z pygments.lexers.templates ~~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for various template engines' markup. :copyright: Copyright 2006-present 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 SqlJinjaLexercheZdZdZdZdZdgZdgZdZe j de j Z dZ d Zd Zd S) 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 Pddlm}|di||_tj|fi|dS)Nr) RubyLexer)pygments.lexers.rubyrl ruby_lexerr__init__)selfoptionsrls GC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/templates.pyrpzErbLexer.__init__EsI222222#)..g.. t''w'''''c#K|j|}|dx}} |dkr6|}|t|fV|t |z }d}n|dkr|}|dvr|t|fV|dz }d}n|dkrM|t j|fV|}|dzt |fV|dt |zz }d}nV|dvry|t j|fV|t |z }|}d}|j |D]\}} } ||z| | fV|t |z }d}n|d vr!|t|fV|t |z }d}n|t j|dfVd}|j |dd D]\}} } |dz|z| | fV|t |z }d}nP|dkrJ|}|d vr |t|fVn|t j|fV|t |z }d}#t$rYd SwxYw) 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. rT)z<%%z%%>z<%#)<%z<%=z<%-)%>z-%>N) _block_resplitreversepopr"lenrPreprocroget_tokens_unprocessedr IndexError) rqtexttokensstateidxvaltagdatar_idxr_tokenr_values rsrzErbLexer.get_tokens_unprocessedJs %%d++9 6 A:: **,,Cuc/)))3s88OCEEaZZ **,,Cn,,!5#o---q !!7?C7777$jjll!Agw3333q3s88|+ ! 444!7?C7777s3xx%zz|| ! $ F Ft L L@@3E7G"'#+w"?????s4yy( ! --!5#o---s3xx !"7?CF:::: ! $ F Fs122w O ODD3E7G"%'E/7G"CCCCCs3xx !aZZ **,,C-//!5#o----!7?C77773s88OCEm6 n    FF sHI I I cd|vrd|vrdSdSdS)Nryrz皙?rmrs rs 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 rsrzSmartyLexer.analyse_texts  9. 5 5  $JB 9. 5 5  $JB 98$ ? ?  $JB 9\4 ( (  $JB rtN)"rrrrrrr filenamesrrr MULTILINEDOTALLflagsr"rrrrrrFunctionrVariablerrConstantr!r DoubleSingle Attributerrrmrtrsr/r/sr D #CjG I'(IM L29 $Eu  ! Xgow @ @ B ( XgouuX4'H'H'Ho'' (* Xgot}d ; ;X G GOX .  TN GOW - GOV ,  . & 6 +X 6 #W%5 6'(. 0 (&- 8 (&- 8 dn -  F8     rtr/ceZdZdZdZdZdgZddgZdZe j e j zZ dZ d efd eejeejfd eejefd e zd zeejejejedfd e zdzeejejejfdedfge ejfdedfde zdzeeejdfdedfedgdefdedfde zdzejfedgdefeddedfgdedfdefd efd!ejfd"ejfd#efd$efd%ejfdedfd&edfd'edfdedfdedfdedfgd(Z d)Z!d*S)+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)rrrrrcd}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  98$ J J  $JB 95tRY G G  $JB 9:D") L L  $JB 9015 7 7  $JB rtN)"rrrrrrrrrrrrr identifierr"rrrrrrrrrrrr rrr!rrrrrmrtrsrTrTs_ D (ClG#IM L29 $E J   Xgow @ @ B  Xgow / / 1 * $'7 7 Xgot}go{ S S  * ${ 2 Xgot}go F F H j 1   ' K .  "T ) Xk4= 1 17 < K ( GFOO  N   Ho . Z % ' 7 GL ! !  h  GL ! ! Hf % j 1 TN k " (&- 8 (&- 8 & / F # #W%5 6 K ) K ( K ) K ( K ) K ( E22Fh     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 Rtjttfi|dSN)superrprrTrqrr __class__s rsrpzVelocityHtmlLexer.__init__/*M==W=====rt) rrrrrrralias_filenamesrrrp __classcell__rs@rsrUrU!sm 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 Rtjttfi|dSr)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_  9-t 4 4 @ #IB 9)4 0 0 < #IB 9^T * * 6 #IB rtN)!rrrrrrrrrrrSrr"rrrrrrrrPseudoBuiltinrr rrr!rrrrrmrtrsr4r4Ksa D!G24IJI ACM D24KEu  gou - 7 #5 XgotWdGOwgto'' ( 1 XgotWdGOGOT7Do'' ( 8 XgotWdDM J J  + XgotW 5 5w @ EN/ 4( Xhdm 4 4 6 3 XgtWdDM B B D 5w~ FG  -dl ;  / t} % *FM : *FM : 0( ;'(. 0 &TN HHT7?;;V D GJ   TN 88D'/::F C GJ   ;   c77Frrtr4c<eZdZdZdZdZdgZddgZdgZdZ d d e fd e e j e e je j eee j fd e e j e je j eee j fd e e j e jeee j fde e j e jeee j fde j fde e j eee j fdefde e j eeefde eefg iZdS)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>s D "CjG.)I'(IM  TN C XdhdmTXeDkk48-- .4 Xdh txeK(($(44 5) Xdh uu[/A/A48 L L N * Xdh uu[/A/A48 L L N dh  # Xdhk 2 2DH = = ? $g . ( Xdhk 2 2E : : <  xx00 2% FFFrtr>c:eZdZdZdZdgZdgZdZdZfdZ xZ S)r?z^ Subclass of the `MyghtyLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Myghtyz html+myghtyztext/html+myghtyrrc Rtjttfi|dSr)rrprr>rs rsrpzMyghtyHtmlLexer.__init__*K;;7;;;;;rt rrrrrrrrrrprrs@rsr?r?sb DoG#$I "CM<<<<<<<<rs rsrpzMyghtyXmlLexer.__init__*;::':::::rtrrs@rsr@r@sb 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 Rtjttfi|dSr)rrprr>rs rsrpzMyghtyJavascriptLexer.__init__*+AAAAAAArtrrs@rsrBrBsy D"K0G+++I #CMBBBBBBBBBrtrBc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rAz] Subclass of the `MyghtyLexer` that highlights unlexed data with the `CssLexer`. z CSS+Myghtyz css+myghtyztext/css+myghtyrrc Rtjttfi|dSr)rrprr>rs rsrpzMyghtyCssLexer.__init__ r rtrrs@rsrArAsb DnG"#I "CM;;;;;;;;;rtrAc|eZdZdZdZdZdgZgdZdgZdZ dd e fd e e j eje j fd e e j e e je j eee j fd e e j d d d eee j fde e j e jeee j fde e j e jeee j fde j fde e j eee j fdefde e j eeefde eeefg iZdZd S)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)(<&[^|])(.*?)(,.*?)?(&>)rrrrrrc~d}tjd|d}n"tjd|tjd}|S)Nrzg?z<&.+&>g)\(?r)rresults rsrzMasonLexer.analyse_text=sA 9,d 3 3 ?FF Yy$ 2 2 >F rt)rrrrrrrrrrrrrrr Multilinerrrr r"rrrrrmrtrsrCrCs D #CiGMMMI&'IM  Z * Xdh 148 < < > C Xdh DM48eDkk48-- .6 XdhdD%% 2B2BDH M M O , Xdh uuY/?/? J J L * Xdh uuY/?/? J J L dh  # Xdhi 0 0$( ; ; = $g . ( Xdhi 0 0% 8 8 :  xi 0 0(;; =' FBrtrCceZdZdZdZdZdgZdgZdgZdZ de e j e jeefd e e j e jeeefd e e j e je j fd e jfd e e jejd fde e jeje jfde jdfde e jeee jfde e jeee jfde eefde fg de jfdejfed gde eje efde jdfde fgdedfdedfdedfgdZdS)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/ Xdow G G I ' Xdowk8J8JE R R T & Xdow~t G G I $g&7 8  Xgot| 4 4e = ! Xgot|W_ E E G + > ' Xgouu['9'97? K K M  Xgouu['9'97? K K M %** ,TN?  DGO $ 7 F GENN * XdndF 3 3 5  0 TN  ff % ff %  ( [22FFFrtrDc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rEz\ Subclass of the `MakoLexer` that highlights unlexed data with the `HtmlLexer`. z HTML+Makoz html+makoztext/html+makorrc Rtjttfi|dSr)rrprrDrs rsrpzMakoHtmlLexer.__init__*I9999999rtrrs@rsrErEsb DmG!"I )CM:::::::::rtrEc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rFz[ Subclass of the `MakoLexer` that highlights unlexed data with the `XmlLexer`. zXML+Makozxml+makozapplication/xml+makorrc Rtjttfi|dSr)rrprrDrs rsrpzMakoXmlLexer.__init__*98888888rtrrs@rsrFrFsb DlG'(I )CM999999999rtrFc>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 Rtjttfi|dSr)rrprrDrs rsrpzMakoJavascriptLexer.__init__s*)??w?????rtrrs@rsrGrGsy 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 Rtjttfi|dSr)rrprrDrs rsrpzMakoCssLexer.__init__r)rtrrs@rsrHrHsb DlG !I )CM999999999rtrHceZdZdZdZdS)CheetahPythonLexerzI Lexer for handling Cheetah's special $ tokens in Python syntax. c#Ktdi|j}||D]/\}}}|tjkr|dkr t j}|||fV0dS)N$rm)r rrrr#rrr)rqrpylexerpostype_values rsrz)CheetahPythonLexer.get_tokens_unprocesseds{-- --!(!?!?!E!E $ $ C ## ue# # # # # $ $rtN)rrrrrrmrtrsr/r/s-$$$$$rtr/cBeZdZdZdZdZddgZddgZdd gZd Z d d e e fd e fde j fde j fde e j e ee j fde e j e efde e j e ee j fdefdefg iZdS)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  hw " ' * "GO 4  ) *hw.@(A(A(( *( Xgouu-?'@'@ A A C % Xgouu-?'@'@o'' ( TN/ FFFrtrJc>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 Rtjttfi|dSr)rrprrJrs rsrpzCheetahHtmlLexer.__init__s*L<>>G$&:;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 Rtjttfi|dSr)rrprrJrs rsrpzCheetahXmlLexer.__init__"*<;;7;;;;;rtrrs@rsrLrLsh 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 Rtjttfi|dSr)rrprrJrs rsrpzCheetahJavascriptLexer.__init__8s*,BB'BBBBBrtrrs@rsrMrM&s D555G---I ,CMCCCCCCCCCrtrMc beZdZdZdZdZdgZddgZdZde fd e e e fd e e e j d fed d e fgde dfdeedfde ee eedfdedfde ee e dfgde e j eee j fdejfgdZdS)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% xxg66 7 88D'/::K H GJ      D& ! #UU;%7%7 @ 0 XgtUU;%7%7 8 8& B $gv 6 &$(H(H& Q  ' Xgouu['9'97? K K M , ]  !FFFrtr;cZeZdZdZejZdefdee j e e e j fdefde jdfde jdfed d efgd efd e jd fde jdfgdeee e edfdeee e edfdedfgd efde jd fd e jdfde jdfgdedfdedfdedfgdedfeddefgdedfeddefgdefed gdee j e e e j fde jfgd ZdS) 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 Rtjttfi|dSr)rrprrIrs rsrpzHtmlGenshiLexer.__init__s+$5AAAAAAArtcd}tjd||dz }tjd||dz }|tj|zdz SNrz \$\{.*?\}皙?zpy:(.*?)=["\']r)rrrrrs rsrzHtmlGenshiLexer.analyse_textsY  9\4 ( ( 4 #IB 9& - - 9 #IBI*4000477rtrrs@rsr:r:s Dj)GM444O#$I (CBBBBB8888888rtr: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 Rtjttfi|dSr)rrprrIrs rsrpzGenshiLexer.__init__s+#4@@@@@@@rtcd}tjd||dz }tjd||dz }|tj|zdz SrW)rrrrrs rsrzGenshiLexer.analyse_textsY  9\4 ( ( 4 #IB 9& - - 9 #IBH)$///$66rtrrrrrrrrrrrrprrrs@rsr9r9s D888G IMiO')<=I (CAAAAA7777777rtr9cJeZdZdZdZgdZdZdgZgdZdZ 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 Rtjttfi|dSr)rrprr;rs rsrpzJavascriptGenshiLexer.__init__s*/EEWEEEEErtc<t|dz SN皙?r9rrs rsrz"JavascriptGenshiLexer.analyse_text''--44rtrrs@rsr=r=s $D$$$GMhO+++I (CFFFFF5555555rtr=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 Rtjttfi|dSr)rrprr;rs rsrpzCssGenshiLexer.__init__s*?>>g>>>>>rtc<t|dz Srergrs rsrzCssGenshiLexer.analyse_textrhrtrrs@rsr<r<s{ D.GMiO"#I 'C?????5555555rtr<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 Rtjttfi|dSr)rrprr*rs rsrpzRhtmlLexer.__init__ *H8888888rtcht|dz }t|r|dz }|SNrg?)r*rr$rs rsrzRhtmlLexer.analyse_texts8  " "4 ( (4 /  % %  #IB rtr_rs@rsr+r+s D000G IM444O!"I 'C99999rtr+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 Rtjttfi|dSr)rrprr*rs rsrpzXmlErbLexer.__init__%*877w77777rtcht|dz }t|r|dz }|Sr)r*rr%rs rsrzXmlErbLexer.analyse_text(s8  " "4 ( (4 / $    #IB rtrrs@rsr,r,s{ D9%GMiO'(I 'C88888rtr,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 Rtjttfi|dSr)rrprr*rs rsrpzCssErbLexer.__init__;rvrtc<t|dz Srer*rrs rsrzCssErbLexer.analyse_text>$$T**T11rtrrs@rsr-r-/s{ D9%GMiO !I 'C888882222222rtr-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 Rtjttfi|dSr)rrprr*rs rsrpzJavascriptErbLexer.__init__Q*(>>g>>>>>rtc<t|dz Srer{rs rsrzJavascriptErbLexer.analyse_textTr|rtrrs@rsr.r.Bs DHHHGMhO)))I (C?????2222222rtr.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 Rtjttfi|dSr)rrprrrs rsrpzHtmlPhpLexer.__init__krqrtc\tj|dz }t|r|dz }|Srs)rrr$rs rsrzHtmlPhpLexer.analyse_textns5  "4 ( (4 /  % %  #IB rtr_rs@rsr&r&Xs DlG IM%%%OIIII C99999rtr&cHeZdZdZdZdgZdZgdZdgZdZ fdZ d Z xZ S) r'zT Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`. zXML+PHPzxml+phprj)rrrzapplication/xml+phprc Rtjttfi|dSr)rrprrrs rsrpzXmlPhpLexer.__init__rvrtc\tj|dz }t|r|dz }|Sr)rrr%rs rsrzXmlPhpLexer.analyse_texts5  "4 ( (4 / $    #IB rtrrs@rsr'r'us| DkGM666O&'I C88888rtr'cFeZdZdZdZdgZdZdgZdgZdZ fdZ d Z xZ S) r(zU Subclass of `PhpLexer` which highlights unmatched data with the `CssLexer`. zCSS+PHPzcss+phprjrjz text/css+phprc Rtjttfi|dSr)rrprrrs rsrpzCssPhpLexer.__init__rvrtc0tj|dz Srerrrs rsrzCssPhpLexer.analyse_texts$T**T11rtrrs@rsr(r(sx DkGMiO I C888882222222rtr(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 Rtjttfi|dSr)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 Rtjttfi|dSr)rrprr/rs rsrpzHtmlSmartyLexer.__init__rrtcht|dz }t|r|dz }|Srs)r/rr$rs rsrzHtmlSmartyLexer.analyse_text8  % %d + +d 2  % %  #IB rtrrs@rsr0r0s| 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 Rtjttfi|dSr)rrprr/rs rsrpzXmlSmartyLexer.__init__r rtcht|dz }t|r|dz }|Sr)r/rr%rs rsrzXmlSmartyLexer.analyse_text8  % %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 Rtjttfi|dSr)rrprr/rs rsrpzCssSmartyLexer.__init__r rtc<t|dz Srer/rrs rsrzCssSmartyLexer.analyse_textrhrtrrs@rsr2r2s{ DnGM(O"#I #C;;;;;5555555rtr2cLeZdZdZdZddgZdZddgZgdZd 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 Rtjttfi|dSr)rrprr/rs rsrpzJavascriptSmartyLexer.__init__r rtc<t|dz Srerrs rsrz"JavascriptSmartyLexer.analyse_text rhrtrrs@rsr3r3s D"K0GMw'O+++I $CBBBBB5555555rtr3cTeZdZdZdZgdZgdZdZgdZddgZ 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 Rtjttfi|dSr)rrprr4rs rsrpzHtmlDjangoLexer.__init__rrtcht|dz }t|r|dz }|Srs)r4rr$rs rsrzHtmlDjangoLexer.analyse_text!rrtr_rs@rsr5r5s D999GjjjIM444O#%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 Rtjttfi|dSr)rrprr4rs rsrpzXmlDjangoLexer.__init__6r rtcht|dz }t|r|dz }|Sr)r4rr%rs rsrzXmlDjangoLexer.analyse_text9rrtr_rs@rsr7r7(s 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 Rtjttfi|dSr)rrprr4rs rsrpzCssDjangoLexer.__init__Nr rtc<t|dz Srer4rrs rsrzCssDjangoLexer.analyse_textQrhrtr_rs@rsr6r6@s D[)G^,IMiO"$45I AC;;;;;5555555rtr6cReZdZdZdZgdZddgZdZdgZgdZ 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 Rtjttfi|dSr)rrprr4rs rsrpzJavascriptDjangoLexer.__init__ir rtc<t|dz Srerrs rsrz"JavascriptDjangoLexer.analyse_textlrhrtr_rs@rsr8r8Us %D///GM*IMhO***I BCBBBBB5555555rtr8cVeZdZdZdedfdefdefdefgdedfd eefgd Zd S) JspRootLexerzt Base for the `JspLexer`. Yields `Token.Other` for area outside of JSP tags. .. versionadded:: 0.7 <%\S?seczC[^<]+|\Z)rrN) rrrrrr"rr rrmrtrsrrpsrw & S   u  5M  GV $ !55#3#3 4 FFFrtrcFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rIz& Lexer for Java Server Pages. zJava Server Pagejspz*.jspzapplication/x-jspz.https://projects.eclipse.org/projects/ee4j.jsprc Rtjttfi|dSrrrprrrs rsrpzJspLexer.__init__r@rtcvtj|dz }t|r|dz }d|vr d|vr|dz }|SNrrryrzr)r rr%rs rsrzJspLexer.analyse_textsO  #D ) )D 0 $    #IB 4<(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+)?(.*?)((?(4)%)\})z!(\$)(\w+)(\{(%)?)(.*?)((?(4)%)\})z(\$)(else|rof|fi)z%(\$\{(%)?)(.*?)((!)(.*?))?((?(2)%)\})#z[^\]#]rz\]#rz[\]#])rrcd|vrdSdS)z.Evoque templates use $evoque, which is unique.z$evoquervNrmrs rsrzEvoqueLexer.analyse_texts   1  rt)rrrrrrrrrrrrrr"rrrrrrr rr rrrmrtrsrNrNs DjG I'(I *CM IE  W& 2 e  !2 3 7 Xk4<dk++ ,! Xk4<deeK00+?? @ 2 Xk4<deK((+77 8"88K#F#F G 5 Xk4{););lD$ == >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 Rtjttfi|dSr)rrprrNrs rsrpzEvoqueHtmlLexer.__init__rrtc6t|SrrNrrs rsrzEvoqueHtmlLexer.analyse_text''---rt rrrrrrrrrrrprrrs@rsrOrOsx 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 Rtjttfi|dSr)rrprrNrs rsrpzEvoqueXmlLexer.__init__r rtc6t|Srrrs rsrzEvoqueXmlLexer.analyse_textrrtrrs@rsrPrPsx DnGiO)*I *CM;;;;;.......rtrPcpeZdZdZdZdgZgZgZdZdZ e j Z de jfde jfdefd efd efd efd efd efdefdejdfdejfdefdefdejfdejfdeejeefdejfdefdefgdejfdejfdejfdejfdejdfgdZd S)!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!rrrrrrrrInterprrmrtrsrQrQsY DgGII ACM ME ( '"3 4  " H % h ' x 2H =  " H  6=( +v} % V MNU W$W%5 6 T ]  ( XdmT; 7 7 9 t} - + . TN3 8FM " v} %  & 6= ! 6=& )  9##FFFrtrQc eZdZdZdZdgZgZgZdZde fe dde fgde j d fd e fd e jd fd ee jeee jfdee jeee jfgde fdeeeeefde jdfe dde fde fgde j dfde j dfde j fgdZdS)ColdfusionMarkupLexerz Coldfusion markup only Coldfusioncfrrtagsz<[^<>]*zz cfoutputz((?s)()(.+?)()z(?s)()z[^#<]+z (#)(.*?)(#)zrz (?s)<[^<>]*rrz--->z([^<-]|<(?!!---)|-(?!-->))+)rrrrN)rrrrrrrrrr"rrrrrrrrQrrrmrtrsrr2sj DfGII ACu  GFOO   w(+ 6  ( t|Z 8 8 XdlEE/$:$:DL I I KQXdlEE/$:$:DL I I  K    XXk553I3I&133 4 f 5 GFOO U # 5M  w(' 2 g' 0 +W-> ? ;""FFFrtrcBeZdZdZdZdgZddgZdgZdZdZ fd Z xZ S) rRz# Coldfusion markup in html zColdfusion HTMLcfmz*.cfmz*.cfmlzapplication/x-coldfusionrrjc Rtjttfi|dSr)rrprrrs rsrpzColdfusionHtmlLexer.__init__ls+$9EEWEEEEErt rrrrrrrrrrrprrs@rsrRrRasu DgG(#I+,I ACMFFFFFFFFFrtrRc>eZdZdZdZdgZdgZgZdZdZ fdZ xZ S)rSz- Coldfusion markup/script components zColdfusion CFCcfcz*.cfcr2.0c Rtjttfi|dSr)rrprRrQrs rsrpzColdfusionCFCLexer.__init__{s+,oIIIIIIIrtrrs@rsrSrSpso DgG II ACMJJJJJJJJJrtrScFeZdZdZdZdgZdgZdgZdZdZ fdZ d Z xZ S) rWz) Lexer for Scalate Server Pages. zScalate Server Pagesspz*.sspzapplication/x-sspz"https://scalate.github.io/scalate/rc Rtjttfi|dSrrrs rsrpzSspLexer.__init__r@rtcd}tjd|r|dz }t|r|dz }d|vr d|vr|dz }|S)Nrz val \w+\s*:g333333?rXryrzr)rrr%rs rsrzSspLexer.analyse_texts\  9^T * *  #IB $    #IB 4<)(\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]+s0 D %CnGMu W %xx>> F( Xgov'79I J JE S XXgot<ed6edd=e fgd"d4e d&fed*gd d4e d&fed>gd;d?ejfgd@ejfdAe fgdBejfdCejfgdDejfdEej fged;ed9ed:edgdFe fgdGe e e eje e d&fd=e!fgde fdHe e e eje e dfde fgdIZ"dS)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  HH[*==~ N $ Xk:uuT9/M/M/M N N  DM  @  -w/? M XXg&6 CC XnlI > > @ Xg& K @ @& J2 Xdh EE$ ,K,K,K +//06 8$ Xdh K 8 8) E  Xdh K 8 8% A0 Xg&j+ F F P ( Xdhj+ > > H3 Xdh eD 222KMM " $ : > > M= @Z  GL ! ! k6 * K +  [@h  GL ! ! k#3 4 # Xdm[* = = P  i@x  K ( GL ! ! G* + + y@D  GN # # GL ! ! ? XeeD)444j( %%i"@"@"@*!## $X   ' : XeeD)444j(- %%i"@"@"@BB C GI   GL ! ! E@h  GI   G' ( ( i@r  ' Xj(D* = =v G ( Xj(- < <=]=?)rrrrrrr)rrrrN)$rrrrrrrrrrrrr _ident_char _ident_begin _ident_end _ident_innerr"rrrrrrrrrrrr!r rrrrrrmrtrsrarahs DhG%&I $CM D24KE*K/L+%,J*,Lu  gou - W %1 XgotWdGOW_dGTo'' ( 6 XgotWdGOW_dGTo'' (  EN- 2+< * * * Xhdm 4 4 6 5l 5 5 5 XgtWdDM B B D ,gn =5   &t| 4 4= ) \ !4= 1 & ! *FM : *FM : Dh O'(. 0% ,TN HHT7?;;V D GJ   TN 88D'/::F C GJ   ;   g99FFFrtrac@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 Rtjttfi|dSr)rrprrars rsrpzTwigHtmlLexer.__init__r&rtrrs@rsrbrbsi DmG I!"I $CM:::::::::rtrbceZdZdZdZdZdgZdZdefde e j e dfd e e eje e ee d fd e e eje e fd e e eje ee d fd e e eje fgde fde j dfdejfdejfdejfdefdejfdejfde ee ee ee ee fg dedfdedfdedfgdZdS)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")rr3r#N)rrrrrrrrr"rrrrrrrrr Booleanrrr!rrrmrtrsrcrcs D 4CgGM5 !XXgot<;hPT U U  / Xk4>; E E G. Xk4>44 H H& R % Xk4>4 8 8 :! *T " gov . / *FM : *FM :'(. 0( 7 !4= 1> XhfdHdFD Q Q S! (ff % ff %  ( Q--FFFrtrcc:eZdZdZdZdgZdgZdZdZfdZ xZ S)rdz` Subclass of the `Angular2Lexer` that highlights unlexed data with the `HtmlLexer`. zHTML + Angular2zhtml+ng2z*.ng2r1rc Rtjttfi|dSr)rrprrcrs rsrpzAngular2HtmlLexer.__init__ rrt) rrrrrrrrrrprrs@rsrdrd sa DlG I 4CM>>>>>>>>>rtrdcBeZdZdZdZdgZgdZdZdZfdZ dZ xZ S) rez Templated SQL lexer. z SQL+Jinjaz sql+jinja)z*.sqlz*.sql.j2z *.sql.jinja2rz2.13c Rtjttfi|dSr)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( sf  9/ 6 6  #IB 92D 9 9  $JB 97 > >  $JB rt) rrrrrrrrrrprrrs@rsrere st DmG555I -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`rarbrcrdrermrtrsrGs  44444444BBBBBBBB((((((((((((......******77777777******((((((,,,,,,,,,,,,,,,,,,,,,,IIIIIIIIIIIIIIIIIIIIIIIIIIII>>>>>>>>   .]]]]]u]]]@77777*777tQQQQQJQQQh>>>>>>>>$0RRRRR*RRRj+++++*+++\ < < < <  > > > > > > > Ort