
    Mh                         d Z ddlmZmZmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZ ddlmZ dgZ G d de          Z G d	 de          Zd
S )z
    pygments.lexers.email
    ~~~~~~~~~~~~~~~~~~~~~

    Lexer for the raw E-mail.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerDelegatingLexerbygroups)	MIMELexer)TextKeywordNameStringNumberComment)get_bool_opt
EmailLexerc                        e Zd ZdZ fdZd Zdej        dfdefgdej	        fdej	        d	fd
e
fde
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j        fdej        fdej        fdej        fdej        fdej        fd eej        ej        ej        e
j        ej        ej        ej                  fdej	        fdefgd Z xZS )!EmailHeaderLexerzm
    Sub-lexer for raw E-mail. This lexer only process header part of e-mail.

    .. versionadded:: 2.5
    c                 f     t                      j        di | t          |dd          | _        d S )Nzhighlight-X-headerF )super__init__r   highlight_xselfoptions	__class__s     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/email.pyr   zEmailHeaderLexer.__init__   s;    ##7###'1EuMM    c              #     K   | j         rk|                    d          t          j        |                    d          fV  |                     |                    d          d          }|E d {V  d S |                    d          t          j        |                    d          fV  |                    d          t          j        |                    d          fV  d S )N      rootheader)stack)	r   startr	   Taggroupget_tokens_unprocessedr   Special	Multiline)r   matchdefault_actionss      r   get_x_header_tokensz$EmailHeaderLexer.get_x_header_tokens   s       	D++a..$(EKKNN:::: #99A&8 : : :O&&&&&&&&&& ++a..'/5;;q>>AAAA++a..'"3U[[^^CCCCCCr   z^(?:[A-WYZ]|X400)[\w\-]*:r!   z(^(X-(?:\w[\w\-]*:))([\s\S]*?\n)(?![ \t])z\n[ \t]z\n(?![ \t])z#popz\bE?SMTPS?\bz\b(?:HE|EH)LO\bz[\w\.\-\+=]+@[\w\.\-]+z<[\w\.\-\+=]+@[\w\.\-]+>z%\b(\w[\w\.-]*\.[\w\.-]*\w[a-zA-Z]+)\bz`(?<=\b)(?:(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)(?=\b)z&(?<=\b)([0-9a-fA-F]{1,4}:){1,7}:(?!\b)z*(?<=\b):((:[0-9a-fA-F]{1,4}){1,7}|:)(?=\b)z5(?<=\b)([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}(?=\b)z6(?<=\b)([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}(?=\b)z8(?<=\b)[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})(?=\b)z:(?<=\b)fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}(?=\b)z=(?<=\b)([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}(?=\b)z=(?<=\b)([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}(?=\b)z=(?<=\b)([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}(?=\b)z=(?<=\b)([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}(?=\b)z(?<=\b)::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])(?=\b)z(?<=\b)([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])(?=\b)a'  (?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3[01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])(?::(60|[0-5][0-9]))?(?:\.\d{1,5})?\s+([-\+][0-9]{2}[0-5][0-9]|\(?(?:UTC?|GMT|(?:E|C|M|P)(?:ST|ET|DT)|[A-IK-Z])\)?)zN(=\?)([\w-]+)(\?)([BbQq])(\?)([\[\w!\"#$%&\'()*+,-./:;<=>@[\\\]^_`{|}~]+)(\?=)z[\s]+z[\S]r   )__name__
__module____qualname____doc__r   r+   r	   r$   r   
Whitespacer   LabelFunctionr   IntegerHex	Decoratorr   r
   AffixConstanttokens__classcell__r   s   @r   r   r      s        N N N N ND D D  *48X>8:MN
 )T_f5 g&) '
3($*5 6t}E5^
 7
C:FJGEvzRF
SH&*UJFJWMvzZMZMZMZ ZRZ
H
 ^"XflDM6<AQlFJ> >? t'dOw<
B BFFFFFr   r   c                   B     e Zd ZdZdZddgZdgZdgZdZdZ	 fd	Z
 xZS )
r   z
    Lexer for raw E-mail.

    Additional options accepted:

    `highlight-X-header`
        Highlight the fields of ``X-`` user-defined email header. (default:
        ``False``).
    zE-mailemailemlz*.emlzmessage/rfc822z2https://en.wikipedia.org/wiki/Email#Message_formatz2.5c                 ^     t                      j        t          t          t          fi | d S )N)r   r   r   r   r   r   s     r   r   zEmailLexer.__init__   s-    )9gIIIIIIIr   )r,   r-   r.   r/   namealiases	filenames	mimetypesurlversion_addedr   r9   r:   s   @r   r   r   q   su          DG	I!"I
>CMJ J J J J J J J Jr   N)r/   pygments.lexerr   r   r   pygments.lexers.mimer   pygments.tokenr   r   r	   r
   r   r   pygments.utilr   __all__r   r   r   r   r   <module>rJ      s     A @ @ @ @ @ @ @ @ @ * * * * * * G G G G G G G G G G G G G G G G & & & & & &.[ [ [ [ [z [ [ [|J J J J J J J J J Jr   