3

V'íc†ã@szdZddlmZmZmZddlmZddlmZm	Z	m
Z
mZmZm
Z
ddlmZdgZGdd„deƒZGd	d„deƒZd
S)zÈ
    pygments.lexers.email
    ~~~~~~~~~~~~~~~~~~~~~

    Lexer for the raw E-mail.

    :copyright: Copyright 2006-2022 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Ú
EmailLexercseZdZdZ‡fdd„Zdd„Zdejdfdefgd	ej	fd
ej	dfde
fd
e
fdejfdejfdejfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfde
jfdejfdeejejeje
jeje
jejƒfd ej	fd!efgd"œZ‡ZS)#ÚEmailHeaderLexerzm
    Sub-lexer for raw E-mail. This lexer only process header part of e-mail.

    .. versionadded:: 2.5
    cs tƒjf|Žt|ddƒ|_dS)Nzhighlight-X-headerF)ÚsuperÚ__init__rÚhighlight_x)ÚselfÚoptions)Ú	__class__©ú9/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/email.pyrszEmailHeaderLexer.__init__ccsx|jr@|jdƒtj|jdƒfV|j|jdƒdd}|EdHn4|jdƒtj|jdƒfV|jdƒtj|jdƒfVdS)NééÚrootÚheader)Ústack)rr)	rÚstartrÚTagÚgroupZget_tokens_unprocessedrÚSpecialZ	Multiline)rÚmatchZdefault_actionsrrrÚget_x_header_tokenssz$EmailHeaderLexer.get_x_header_tokensz^(?:[A-WYZ]|X400)[\w\-]*:rz(^(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])rr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rr!rrrÚ
WhitespacerZLabelZFunctionr
ZIntegerZHexZ	Decoratorrr	ZAffixÚConstantÚtokensÚ
__classcell__rr)rrrsL

rcs8eZdZdZdZddgZdgZdgZ‡fdd„Z‡Z	S)	r
    Lexer for raw E-mail.

    Additional options accepted:

    `highlight-X-header`
        Highlight the fields of ``X-`` user-defined email header. (default:
        ``False``).

    .. versionadded:: 2.5
    zE-mailÚemailZemlz*.emlzmessage/rfc822cstƒjtttf|ŽdS)N)rrrrr)rr)rrrrƒszEmailLexer.__init__)
r"r#r$r%ÚnameÚaliasesÚ	filenamesÚ	mimetypesrr)rr)rrr
qsN)r%Zpygments.lexerrrrZpygments.lexers.mimerZpygments.tokenrrrr	r
rZ
pygments.utilrÚ__all__rr
rrrrÚ<module>	s ^