
                             S r SSKrSSKJrJrJr  SSKJrJrJ	r	J
r
JrJrJrJr  / SQr " S S\5      r " S S	\5      r " S
 S\5      rg)z
pygments.lexers.diff
~~~~~~~~~~~~~~~~~~~~

Lexers for diff/patch formats.

:copyright: Copyright 2006-2023 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                   \   \ rS rSrSrSrSS/rSS/rSS	/rS
S\	" \
\\
5      4S\	" \R                  \
5      4S\	" \R                  \
5      4S\	" \R                  \
5      4S\	" \R                   \
5      4S\	" \R"                  \
5      4S\	" \R"                  \
5      4S\	" \\
5      4/0rS rSrg)r      z6
Lexer for unified or context-style diffs or patches.
Diffdiffudiffz*.diffz*.patchztext/x-diffztext/x-patch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                 @    U S S S:X  a  gU S S S:X  a  gU S S S:X  a  gg )	N   zIndex: T   zdiff    z--- g? )texts    'lib/third_party/pygments/lexers/diff.pyanalyse_textDiffLexer.analyse_text.   s:    8y 8w8v     r   N)__name__
__module____qualname____firstlineno____doc__namealiases	filenames	mimetypesr   r   r   r   StrongDeletedInserted
SubheadingHeadingtokensr   __static_attributes__r   r!   r   r   r      s     DwG9%I/I 	Xj$
CDx
CD (7??J"GH!8G,<,<j#IJ=++Z8 *8GOOZ+PQ8GOOZ@A(445
F r!   r   c                   8   \ rS rSrSrSrS/rSS/rSrS\	4S	\	4S
\	4S\	4S\
" \	\\\\\	\R                  \\	5	      4S\
" \	\\\\\	\R                  \5      S4S\R"                  4S\R"                  4S\R"                  4SSR%                  \5      -  \
" \\\\5      4S\R(                  S4S\R*                  S4S\
" \\5      4/S\4S\	S4/S\S4S\	4/\" S5      S\R(                  4S \R(                  4/\" S5      S\R*                  4S \R*                  4/S!.rS"rg#)$r   7   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``.

.. versionadded:: 0.10
zDarcs Patchdpatchz*.dpatchz*.darcspatch)hunkaddfileadddir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*)(%s)(.*)(\n)|z\+insert-deleter   z	[^\]].*\nz\]#popz\nz
\[_[^_]*_]specialTextz\[z[^\n\[]+)r   r>   rD   r@   rB   r   N)r"   r#   r$   r%   r&   r'   r(   r)   DPATCH_KEYWORDSr   r   r	   r
   r   r   Dater   r/   joinr   r-   r,   r   r   r0   r1   r   r!   r   r   r   7   s    DjG^,I"O
 88HH?hz4llJ:; <hz4llJ01:< goo.'//*"GOO4!CHH_$==WdJ?AG$$h/7??H-(445%
* 7#Hf%

 J'H%

 M"G$$%'**+
 M"GOO$'//*
E'Fr!   r   c            	          \ rS rSrSrSrSrS/rS/r/ r	\
R                  \
R                  -  rSrSrS	rS
rSr\\R(                  S4\\R*                  S4\\4S\4/\\R(                  S4\\R(                  S4\\R(                  S4\\R(                  S4\\R(                  4S\R(                  4/\\R*                  S4\\R*                  S4\\R*                  S4\\R*                  S4\\R*                  4S\R*                  4/S.rSrg)r   q   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.

.. versionadded:: 2.2
WDiffz#https://www.gnu.org/software/wdiff/wdiffz*.wdiffz\{\+z\+\}z\[\-z\-\]z[^{}[\]+-]+inserteddeleted.z#pushrC   )r   rL   rM   r   N)r"   r#   r$   r%   r&   r'   urlr(   r)   r*   re	MULTILINEDOTALLflagsins_opins_cldel_opdel_clnormalr   r-   r,   r   r0   r1   r   r!   r   r   r   q   sG   
 D
/CiGIILL299$E FFFFF W%%z2W__i0TN4L	
 W%%w/W%%w/W%%v.W%%v.W%%&7##$
 W__g.W__g.W__f-W__f-W__%7??#
!Fr!   r   )r&   rP   pygments.lexerr   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   __all__r   r   r   r   r!   r   <module>r\      sQ    
 8 8   9 
  F7j 7t7 7r!   