File: //lib/python3/dist-packages/pygments/lexers/__pycache__/templates.cpython-311.pyc
�
�E�c� � � � d Z ddlZddlmZmZ ddlmZmZ ddlm Z ddl
mZ ddlm
Z
ddlmZ dd lmZmZ dd
lmZ ddlmZ ddlmZmZmZmZmZmZmZmZm 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/m0Z0 g d�Z1 G d� de� � Z2 G d� de� � Z3 G d� de� � Z4 G d� de� � Z5 G d� de� � Z6 G d� de� � Z7 G d� de� � Z8 G d� de� � Z9 G d � d!e� � Z: G d"� d#e� � Z; G d$� d%e� � Z< G d&� d'e� � Z= G d(� d)e� � Z> G d*� d+e� � Z? G d,� d-e� � Z@ G d.� d/e� � ZA G d0� d1e� � ZB G d2� d3e� � ZC G d4� d5e� � ZD G d6� d7e� � ZE G d8� d9e� � ZF G d:� d;e� � ZG G d<� d=e� � ZH G d>� d?e� � ZI G d@� dAe� � ZJ G dB� dCe� � ZK G dD� dEe� � ZL G dF� dGe� � ZM G dH� dIe� � ZN G dJ� dKe� � ZO G dL� dMe� � ZP G dN� dOe� � ZQ G dP� dQe� � ZR G dR� dSe� � ZS G dT� dUe� � ZT G dV� dWe� � ZU G dX� dYe� � ZV G dZ� d[e� � ZW G d\� d]e� � ZX G d^� d_e� � ZY G d`� dae� � ZZ G db� dce� � Z[ G dd� dee� � Z\ G df� dge� � Z] G dh� die� � Z^ G dj� dke� � Z_ G dl� dme� � Z` G dn� doe� � Za G dp� dqe� � Zb G dr� dse� � Zc G dt� due� � Zd G dv� dwe� � Ze G dx� dye� � Zf G dz� d{e� � Zg G d|� d}e� � Zh G d~� de� � Zi G d�� d�e� � Zj G d�� d�e� � Zk G d�� d�e� � Zl G d�� d�e� � Zm G d�� d�e� � Zn G d�� d�e� � Zo G d�� d�e� � Zp G d�� d�e� � Zq G d�� d�e� � Zr G d�� d�e� � Zs G d�� d�e� � Zt G d�� d�e� � Zu G d�� d�e� � ZvdS )�z�
pygments.lexers.templates
~~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for various template engines' markup.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)� HtmlLexer�XmlLexer)�JavascriptLexer�
LassoLexer)�CssLexer)�PhpLexer)�PythonLexer)� PerlLexer)� JavaLexer�TeaLangLexer)� YamlLexer)�SqlLexer) �Lexer�DelegatingLexer�
RegexLexer�bygroups�include�using�this�default�combined)�Error�Punctuation�
Whitespace�Text�Comment�Operator�Keyword�Name�String�Number�Other�Token)�html_doctype_matches�looks_like_xml)@�HtmlPhpLexer�XmlPhpLexer�CssPhpLexer�JavascriptPhpLexer�ErbLexer�
RhtmlLexer�XmlErbLexer�CssErbLexer�JavascriptErbLexer�SmartyLexer�HtmlSmartyLexer�XmlSmartyLexer�CssSmartyLexer�JavascriptSmartyLexer�DjangoLexer�HtmlDjangoLexer�CssDjangoLexer�XmlDjangoLexer�JavascriptDjangoLexer�GenshiLexer�HtmlGenshiLexer�GenshiTextLexer�CssGenshiLexer�JavascriptGenshiLexer�MyghtyLexer�MyghtyHtmlLexer�MyghtyXmlLexer�MyghtyCssLexer�MyghtyJavascriptLexer�
MasonLexer� MakoLexer�
MakoHtmlLexer�MakoXmlLexer�MakoJavascriptLexer�MakoCssLexer�JspLexer�CheetahLexer�CheetahHtmlLexer�CheetahXmlLexer�CheetahJavascriptLexer�EvoqueLexer�EvoqueHtmlLexer�EvoqueXmlLexer�ColdfusionLexer�ColdfusionHtmlLexer�ColdfusionCFCLexer�
VelocityLexer�VelocityHtmlLexer�VelocityXmlLexer�SspLexer�TeaTemplateLexer�LassoHtmlLexer�
LassoXmlLexer�
LassoCssLexer�LassoJavascriptLexer�HandlebarsLexer�HandlebarsHtmlLexer�YamlJinjaLexer�LiquidLexer� TwigLexer�
TwigHtmlLexer�
Angular2Lexer�Angular2HtmlLexer�
SqlJinjaLexerc �d � e Zd ZdZdZdZdgZdgZ ej dej
� � Zd� Zd� Z
d � 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`.
�ERBzhttps://github.com/ruby/erb�erbzapplication/x-ruby-templatingz*(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)c �P � ddl m} |di |��| _ t j | fi |�� d S )Nr )� RubyLexer� )�pygments.lexers.rubyrj �
ruby_lexerr �__init__)�self�optionsrj s �;/usr/lib/python3/dist-packages/pygments/lexers/templates.pyrn zErbLexer.__init__D sI � �2�2�2�2�2�2�#�)�.�.�g�.�.���
��t�'�'�w�'�'�'�'�'� c # �� K � | j � |� � }|� � � dx}} |dk r6|� � � }|t |fV � |t |� � z
}d}�n�|dk �r�|� � � }|dv r|t |fV � |dz
}d}�n�|dk rM|t j |fV � |� � � }|dz t |fV � |dt |� � z z
}d}�nV|dv ry|t j |fV � |t |� � z
}|� � � }d}| j � |� � D ]\ }} }
||z | |
fV � �|t |� � z
}d}n�|d v r!|t |fV � |t |� � z
}d}n�|t j |d fV � d}| j � |dd
� � � D ]\ }} }
|dz |z | |
fV � �|t |� � z
}d}nP|dk rJ|� � � }|d vr
|t |fV � n|t j |fV � |t |� � z
}d}��# t $ r Y d
S w xY w)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 T� )z<%%z%%>� z<%#� )�<%z<%=z<%-)�%>z-%>N)� _block_re�split�reverse�popr"