a
    Df                     @   s   d Z ddlZddl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 g dZG dd deZG dd	 d	eZG d
d deZdS )z
    pygments.lexers.diff
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for diff/patch formats.

    :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroups)TextCommentOperatorKeywordNameGenericLiteral
Whitespace)	DiffLexerDarcsPatchLexer
WDiffLexerc                   @   s   e Zd ZdZdZddgZddgZddgZd	Zd
Z	dde
eeefde
ejefde
ejefde
ejefde
ejefde
ejefde
ejefde
eefgiZdd ZdS )r   z>
    Lexer for unified or context-style diffs or patches.
    ZDiffdiffZudiffz*.diffz*.patchztext/x-diffztext/x-patchz"https://en.wikipedia.org/wiki/Diff rootz( )(.*)(\n)z(!.*|---)(\n)z((?:< |-).*)(\n)z((?:> |\+).*)(\n)z*(@.*|\d(?:,\d+)?(?:a|c|d)\d+(?:,\d+)?)(\n)z((?:[Ii]ndex|diff).*)(\n)z	(=.*)(\n)(.*)(\n)c                 C   s@   | d d dkrdS | d d dkr(dS | d d dkr<dS d S )	N   zIndex: T   zdiff    z--- g? )textr   r   a/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/pygments/lexers/diff.pyanalyse_text0   s    zDiffLexer.analyse_textN)__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedr   r   r   r
   ZStrongDeletedInsertedZ
SubheadingHeadingtokensr   r   r   r   r   r      s*   
r   c                   @   s*  e Zd ZdZdZdgZddgZdZdZdZ	d	e
fd
e
fde
fde
fdee
eeeee
ejee
	fdee
eeeee
ejedfdejfdejfdejfdde	eeeeefdejdfdejdfdeeefgdefde
dfgdedfde
fgedd ejfd!ejfgedd ejfd!ejfgd"Zd#S )$r   z
    DarcsPatchLexer is a lexer for the various versions of the darcs patch
    format.  Examples of this format are derived by commands such as
    ``darcs annotate --patch`` and ``darcs send``.
    zDarcs PatchZdpatchz*.dpatchz*.darcspatchzhttps://darcs.netz0.10)ZhunkaddfileZadddirZrmfilermdirmovereplace<>z\{z\}z/(\[)((?:TAG )?)(.*)(\n)(.*)(\*\*)(\d+)(\s?)(\])z+(\[)((?:TAG )?)(.*)(\n)(.*)(\*\*)(\d+)(\s?)commentzNew patches:zContext:zPatch bundle hash:z(\s*)({})(.*)(\n)|z\+insert-deleter   z	[^\]].*\nz\]#popz\nz
\[_[^_]*_]specialTextz\[z[^\n\[]+)r   r/   r5   r1   r3   N)r   r   r   r   r   r    r!   r#   r$   ZDPATCH_KEYWORDSr   r   r   r	   r   r   Dater
   r'   formatjoinr   r&   r%   r   r   r(   r   r   r   r   r   9   s^   

r   c                	   @   s   e Zd ZdZdZdZdgZdgZg ZdZ	e
je
jB ZdZdZd	Zd
ZdZeejdfeejdfeefdefgeejdfeejdfeejdfeejdfeejfdejfgeejdfeejdfeejdfeejdfeejfdejfgdZdS )r   z
    A wdiff lexer.

    Note that:

    * It only works with normal output (without options like ``-l``).
    * If the target files contain "[-", "-]", "{+", or "+}",
      especially they are unbalanced, the lexer will get confused.
    ZWDiffz#https://www.gnu.org/software/wdiff/Zwdiffz*.wdiffz2.2z\{\+z\+\}z\[\-z\-\]z[^{}[\]+-]+inserteddeleted.z#pushr4   )r   r9   r:   N)r   r   r   r   r   r#   r    r!   r"   r$   re	MULTILINEDOTALLflagsZins_opZins_clZdel_opZdel_clnormalr
   r&   r%   r   r(   r   r   r   r   r   s   sB   











r   )r   r<   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   __all__r   r   r   r   r   r   r   <module>   s   
(%: