U
    luf"                     @   s   d Z ddlZddlmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZmZmZmZ ddlmZ ddd	d
ddgZG dd deZG dd deZG dd	 d	eZG dd
 d
eZG dd deZG dd deZdS )a  
    pygments.lexers.ul4
    ~~~~~~~~~~~~~~~~~~~

    Lexer for the UL4 templating language.

    More information: https://python.livinglogic.de/UL4.html

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerDelegatingLexerbygroupswordsinclude)	CommentTextKeywordStringNumberLiteralNameOtherOperator)	HtmlLexerXmlLexerCssLexerJavascriptLexer)PythonLexerUL4LexerHTMLUL4LexerXMLUL4LexerCSSUL4LexerJavascriptUL4LexerPythonUL4Lexerc                   @   s  e Zd ZdZejejB ZdZdgZ	dgZ
deejejeejejfdeejejeejejdfdefdejfd	ed
fdeejejeejejdfdeejejedfdeejejedfdeejejedfdefdefgd	edfdedfdefdefgdejdfdedfdedfdedfdedfd ejfd!ejfd"ejfd#ejfd$ejfd%ejfd&ejfd'ejfd(ejfd)ejfd*ejfd+efe d,d-d.efe d/d-d.ej!fd0efd1ejfgdejdfe d2d-d.efd1efgdejdfe d3d-d.ejfd1ejfgd4ej"fd5ej"fd6ej"fd7ej"fgdedfe#d8d9efdefgdedfe#d8d:efdefgdedfe#d8d9efdefgdedfe#d8d:efdefgd;
Z$d<S )=r   z<
    Generic lexer for UL4.

    .. versionadded:: 2.12
    ZUL4ul4z*.ul4z(<\?)(\s*)(ul4)(\s*)(\?>)z-(<\?)(\s*)(ul4)(\s*)([a-zA-Z_][a-zA-Z_0-9]*)?z<\?\s*note\s.*?\?>z<\?\s*doc\s.*?\?>z<\?\s*ignore\s*\?>ignorez-(<\?)(\s*)(def)(\s*)([a-zA-Z_][a-zA-Z_0-9]*)?zK(<\?)(\s*)(printx|print|for|if|elif|else|while|code|renderblocks?|render)\bz(<\?)(\s*)(end)\bendz(<\?)(\s*)(whitespace)\b
whitespacez[^<]+<z#pushz<\?\s*end\s+ignore\s*\?>z#pop.z\?>z'''string13z"""string23'string1"string2z\d+\.\d*([eE][+-]?\d+)?z\.\d+([eE][+-]?\d+)?z\d+[eE][+-]?\d+z
0[bB][01]+z0[oO][0-7]+z0[xX][0-9a-fA-F]+z9@\(\d\d\d\d-\d\d-\d\d(T(\d\d:\d\d(:\d\d(\.\d{6})?)?)?)?\)z#[0-9a-fA-F]{8}z#[0-9a-fA-F]{6}z#[0-9a-fA-F]{3,4}z\d+zS//|==|!=|>=|<=|<<|>>|\+=|-=|\*=|/=|//=|<<=|>>=|&=|\|=|^=|=|[\[\]{},:*/().~%&|<>^+-])forinifelsenotisandorz\b)suffix)NoneFalseTruez[a-zA-Z_][a-zA-Z0-9_]*z\s+)r'   r)   defwhileZrenderblockZrenderblocks)ZkeepstripZsmartz\\[\\'"abtnfr]z\\x[0-9a-fA-F]{2}z\\u[0-9a-fA-F]{4}z\\U[0-9a-fA-F]{8}stringescapesz[^\\']+z[^\\"]+)
rootr   r   r   r   r6   r!   r"   r$   r&   N)%__name__
__module____qualname____doc__re	MULTILINEDOTALLflagsnamealiases	filenamesr   r   ZPreprocr   
Whitespacer	   r   ZFunctionr
   ZDocr   r   ZFloatZBinOctZHexr   DateZColorZIntegerr   r   ConstantZEscaper   tokens rH   rH   7/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/ul4.pyr      s    
 		
 


F
(

 c                       s0   e Zd ZdZdZdgZdgZ fddZ  ZS )r   z)
    Lexer for UL4 embedded in HTML.
    zHTML+UL4zhtml+ul4z	*.htmlul4c                    s   t  jttf| d S N)super__init__r   r   selfoptions	__class__rH   rI   rL      s    zHTMLUL4Lexer.__init__	r8   r9   r:   r;   r@   rA   rB   rL   __classcell__rH   rH   rP   rI   r      s
   c                       s0   e Zd ZdZdZdgZdgZ fddZ  ZS )r   z(
    Lexer for UL4 embedded in XML.
    zXML+UL4zxml+ul4z*.xmlul4c                    s   t  jttf| d S rJ   )rK   rL   r   r   rM   rP   rH   rI   rL      s    zXMLUL4Lexer.__init__rR   rH   rH   rP   rI   r      s
   c                       s0   e Zd ZdZdZdgZdgZ fddZ  ZS )r   z(
    Lexer for UL4 embedded in CSS.
    zCSS+UL4zcss+ul4z*.cssul4c                    s   t  jttf| d S rJ   )rK   rL   r   r   rM   rP   rH   rI   rL      s    zCSSUL4Lexer.__init__rR   rH   rH   rP   rI   r      s
   c                       s0   e Zd ZdZdZdgZdgZ fddZ  ZS )r   z/
    Lexer for UL4 embedded in Javascript.
    zJavascript+UL4zjs+ul4z*.jsul4c                    s   t  jttf| d S rJ   )rK   rL   r   r   rM   rP   rH   rI   rL      s    zJavascriptUL4Lexer.__init__rR   rH   rH   rP   rI   r      s
   c                       s0   e Zd ZdZdZdgZdgZ fddZ  ZS )r   z+
    Lexer for UL4 embedded in Python.
    z
Python+UL4zpy+ul4z*.pyul4c                    s   t  jttf| d S rJ   )rK   rL   r   r   rM   rP   rH   rI   rL   
  s    zPythonUL4Lexer.__init__rR   rH   rH   rP   rI   r     s
   ) r;   r<   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   Zpygments.lexers.webr   r   r   r   Zpygments.lexers.pythonr   __all__r   r   r   r   r   r   rH   rH   rH   rI   <module>   s    ,  5