+
    IV-jR‰  ã                   óZ  € R t ^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIHtHtHtHtHtHt ^ RIHt . R-Ot]P2                  ! R4      t. R.Ot]! R 4      t ! R R]4      t ! R R]R7      t  ! R R
] 4      t! ! R R]"4      t# ! R R4      t$]$! 4       t% ! R R]&4      t' ! R R4      t(R t) ! R R4      t*]*! 4       t+R  t, ! R! R4      t- ! R" R]4      t. ! R# R$]4      t/ ! R% R] ]/R7      t0 ! R& R4      t1 ! R' R	]04      t2R( t3 ! R) R*]/4      t4 ! R+ R,]0]4R7      t5R# )/z£
pygments.lexer
~~~~~~~~~~~~~~

Base lexer classes.

:copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)Úapply_filtersÚFilter)Úget_filter_by_name)ÚErrorÚTextÚOtherÚ
WhitespaceÚ
_TokenType)Úget_bool_optÚget_int_optÚget_list_optÚmake_analysatorÚFutureÚguess_decode)Ú	regex_optÚLexerÚ
RegexLexerÚExtendedRegexLexerÚDelegatingLexerÚLexerContextÚincludeÚdefaultÚwordsz.*?
c                 ó   € R # )ç        © )Úxs   &Ú_/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pygments/lexer.pyÚ<lambda>r   "   s   € ©#ó    c                   ó*   a € ] tR t^%t o RtR tRtV tR# )Ú	LexerMetazv
This metaclass automagically converts ``analyse_text`` methods into
static methods which always return float values.
c                óf   € R V9   d   \        VR ,          4      VR &   \        P                  WW#4      # )Úanalyse_text)r   ÚtypeÚ__new__)ÚmcsÚnameÚbasesÚds   &&&&r   r%   ÚLexerMeta.__new__+   s/   € Ø˜QÔÜ /°°.Õ0AÓ BˆAˆnÑÜ�|‰|˜C uÓ0Ð0r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r%   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r!   r!   %   s   ø‡ € ñ÷
1ð 1r   r!   c                   óv   a € ] tR t^1t o RtRt. t. t. t. t	^ t
RtRtRtR tR tR tR tR tRR ltR	 tR
tV tR# )r   an  
Lexer for a specific language.

See also :doc:`lexerdevelopment`, a high-level guide to writing
lexers.

Lexer classes have attributes used for choosing the most appropriate
lexer based on various criteria.

.. autoattribute:: name
   :no-value:
.. autoattribute:: aliases
   :no-value:
.. autoattribute:: filenames
   :no-value:
.. autoattribute:: alias_filenames
.. autoattribute:: mimetypes
   :no-value:
.. autoattribute:: priority

Lexers included in Pygments should have two additional attributes:

.. autoattribute:: url
   :no-value:
.. autoattribute:: version_added
   :no-value:

Lexers included in Pygments may have additional attributes:

.. autoattribute:: _example
   :no-value:

You can pass options to the constructor. The basic options recognized
by all lexers and processed by the base `Lexer` class are:

``stripnl``
    Strip leading and trailing newlines from the input (default: True).
``stripall``
    Strip all leading and trailing whitespace from the input
    (default: False).
``ensurenl``
    Make sure that the input ends with a newline (default: True).  This
    is required for some lexers that consume input linewise.

    .. versionadded:: 1.3

``tabsize``
    If given and greater than 0, expand tabs in the input (default: 0).
``encoding``
    If given, must be an encoding name. This encoding will be used to
    convert the input string to Unicode, if it is not already a Unicode
    string (default: ``'guess'``, which uses a simple UTF-8 / Locale /
    Latin1 detection.  Can also be ``'chardet'`` to use the chardet
    library, if it is installed.
``inencoding``
    Overrides the ``encoding`` if given.
Nc                ó|  € Wn         \        VRR4      V n        \        VRR4      V n        \        VRR4      V n        \        VR^ 4      V n        VP                  RR4      V n        VP                  R	4      ;'       g    V P                  V n        . V n	        \        VR
R4       F  pV P                  V4       K  	  R# )a)  
This constructor takes arbitrary options as keyword arguments.
Every subclass must first process its own options and then call
the `Lexer` constructor, since it processes the basic
options like `stripnl`.

An example looks like this:

.. sourcecode:: python

   def __init__(self, **options):
       self.compress = options.get('compress', '')
       Lexer.__init__(self, **options)

As these options must all be specifiable as strings (due to the
command line usage), there are various utility functions
available to help with that, see `Utilities`_.
ÚstripnlTÚstripallFÚensurenlÚtabsizeÚencodingÚguessÚ
inencodingÚfiltersNr   )Úoptionsr
   r6   r7   r8   r   r9   Úgetr:   r=   r   Ú
add_filter)Úselfr>   Úfilter_s   &, r   Ú__init__ÚLexer.__init__‘   s�   € ð& ŒÜ# G¨Y¸Ó=ˆŒÜ$ W¨j¸%Ó@ˆŒÜ$ W¨j¸$Ó?ˆŒÜ" 7¨I°qÓ9ˆŒØŸ™ J°Ó8ˆŒØŸ™ LÓ1×BÐB°T·]±]ˆŒØˆŒÜ# G¨Y¸Ö;ˆGØ�O‰O˜GÖ$ó <r   c                óª   € V P                   '       d)   R V P                  P                   RV P                   : R2# R V P                  P                   R2# )z<pygments.lexers.z with Ú>)r>   Ú	__class__r+   ©rA   s   &r   Ú__repr__ÚLexer.__repr__¯   sK   € Ø�<�<ˆ<Ø& t§~¡~×'>Ñ'>Ð&?¸vÀdÇlÁlÑEUÐUVÐWÐWà& t§~¡~×'>Ñ'>Ð&?¸qÐAÐAr   c                ó€   € \        V\        4      '       g   \        V3/ VB pV P                  P	                  V4       R# )z(
Add a new stream filter to this lexer.
N)Ú
isinstancer   r   r=   Úappend)rA   rB   r>   s   &&,r   r@   ÚLexer.add_filterµ   s2   € ô ˜'¤6×*Ò*Ü(¨Ñ<°GÑ<ˆGØ�‰×Ñ˜GÖ$r   c                ó   € R# )aa  
A static method which is called for lexer guessing.

It should analyse the text and return a float in the range
from ``0.0`` to ``1.0``.  If it returns ``0.0``, the lexer
will not be selected as the most probable one, if it returns
``1.0``, it will be selected immediately.  This is used by
`guess_lexer`.

The `LexerMeta` metaclass automatically wraps this function so
that it works like a static method (no ``self`` or ``cls``
parameter) and the return value is automatically converted to
`float`. If the return value is an object that is boolean `False`
it's the same as if the return values was ``0.0``.
Nr   )Útexts   &r   r#   ÚLexer.analyse_text½   s   ‚ r   c                ó^  € \        V\        4      '       Eg
   V P                  R8X  d   \        V4      w  rEMV P                  R8X  d˜    ^ RIpRp\         F<  w  rgTP                  T4      '       g   K  T\        T4      R P                  TR4      p M	  TfD   TP                  TR,          4      pTP                  TP                  R4      ;'       g    RR4      pTpMfVP                  V P                  4      pVP                  R	4      '       d   V\        R	4      R pM%VP                  R	4      '       d   V\        R	4      R pVP                  R
R4      pVP                  RR4      pV P                  '       d   VP                  4       pM#V P                  '       d   VP                  R4      pV P                   ^ 8”  d   VP#                  V P                   4      pV P$                  '       d!   VP'                  R4      '       g
   VR,          pV#   \
         d   p\        R4      ThRp?ii ; i)zVApply preprocessing such as decoding the input, removing BOM and normalizing newlines.r;   ÚchardetNzkTo enable chardet encoding guessing, please install the chardet library from http://chardet.feedparser.org/Úreplace:Ni   Nr:   úutf-8u   ï»¿z
Ú
Ú)rL   Ústrr:   r   rS   ÚImportErrorÚ_encoding_mapÚ
startswithÚlenÚdecodeÚdetectr?   rT   r7   Ústripr6   r9   Ú
expandtabsr8   Úendswith)	rA   rP   Ú_rS   ÚeÚdecodedÚbomr:   Úencs	   &&       r   Ú_preprocess_lexer_inputÚLexer._preprocess_lexer_inputÎ   sÑ  € ô ˜$¤×$Ó$Ø�}‰} Ô'Ü& tÓ,‘�‘aØ—‘ )Ô+ðTÛ"ð �ß%2‘M�CØ—‘ s×+Ô+Ø"&¤s¨3£x y /×"8Ñ"8¸À9Ó"M˜Ùñ &3ð
 ’?Ø!Ÿ.™.¨¨e­Ó5�CØ"Ÿk™k¨#¯'©'°*Ó*=×*HÐ*HÀØ*3ó5�Gà‘à—{‘{ 4§=¡=Ó1�Ø—?‘? 8×,Ò,Ø¤ H£ Ð/�Døà�‰˜x×(Ò(ØœC ›M˜NÐ+�ð �|‰|˜F DÓ)ˆØ�|‰|˜D $Ó'ˆØ�=�=ˆ=Ø—:‘:“<‰DØ�\�\ˆ\Ø—:‘:˜dÓ#ˆDØ�<‰<˜!ÔØ—?‘? 4§<¡<Ó0ˆDØ�=�=ˆ= §¡¨t×!4Ò!4Ø�D�LˆDàˆøôI #ô TÜ%ð 'Ló MàRSðTûðTús   Á
H ÈH,ÈH'È'H,c                ó†   a a€ S P                  S4      oV V3R lpV! 4       pV'       g   \        VS P                  S 4      pV# )a  
This method is the basic interface of a lexer. It is called by
the `highlight()` function. It must process the text and return an
iterable of ``(tokentype, value)`` pairs from `text`.

Normally, you don't need to override this method. The default
implementation processes the options recognized by all lexers
(`stripnl`, `stripall` and so on), and then yields all tokens
from `get_tokens_unprocessed()`, with the ``index`` dropped.

If `unfiltered` is set to `True`, the filtering mechanism is
bypassed even if filters are defined.
c               3   óP   <"  € SP                  S4       F  w  rpW3x € K  	  R # 5i©N)Úget_tokens_unprocessed)rb   ÚtÚvrA   rP   s      €€r   ÚstreamerÚ"Lexer.get_tokens.<locals>.streamer  s&   øé € Ø×6Ñ6°tÖ<‘��aØ�d”
ó =ùs   ƒ#&)rg   r   r=   )rA   rP   Ú
unfilteredro   Ústreams   ff&  r   Ú
get_tokensÚLexer.get_tokensý   s=   ù€ ð ×+Ñ+¨DÓ1ˆö	ñ “ˆßÜ" 6¨4¯<©<¸Ó>ˆFØˆr   c                ó   € \         h)a#  
This method should process the text and return an iterable of
``(index, tokentype, value)`` tuples where ``index`` is the starting
position of the token within the input text.

It must be overridden by subclasses. It is recommended to
implement it as a generator to maximize effectiveness.
)ÚNotImplementedError)rA   rP   s   &&r   rl   ÚLexer.get_tokens_unprocessed  s
   € ô "Ð!r   )r:   r8   r=   r>   r7   r6   r9   )F)r+   r,   r-   r.   r/   r'   ÚaliasesÚ	filenamesÚalias_filenamesÚ	mimetypesÚpriorityÚurlÚversion_addedÚ_examplerC   rI   r@   r#   rg   rs   rl   r0   r1   r2   s   @r   r   r   1   st   ø‡ € ñ8ðv €Dð €Gð
 €Ið €Oð €Ið €Hð €Cð €Mð €Hò%ò<Bò%òò"-ô^÷0	"ð 	"r   )Ú	metaclassc                   ó6   a € ] tR tRt o Rt]3R ltR tRtV t	R# )r   i!  a  
This lexer takes two lexer as arguments. A root lexer and
a language lexer. First everything is scanned using the language
lexer, afterwards all ``Other`` tokens are lexed using the root
lexer.

The lexers from the ``template`` lexer package use this base lexer.
c                ót   € V! R/ VB V n         V! R/ VB V n        W0n        \        P                  ! V 3/ VB  R # ©Nr   )Ú
root_lexerÚlanguage_lexerÚneedler   rC   )rA   Ú_root_lexerÚ_language_lexerÚ_needler>   s   &&&&,r   rC   ÚDelegatingLexer.__init__+  s7   € Ù%Ñ0¨Ñ0ˆŒÙ-Ñ8°Ñ8ˆÔØŒÜ�Š�tÑ'˜wÔ'r   c                óŽ  € R p. p. pV P                   P                  V4       FX  w  rVpW`P                  J d1   V'       d   VP                  \	        V4      V34       . pW',          pKE  VP                  WVV34       KZ  	  V'       d   VP                  \	        V4      V34       \        VV P                  P                  V4      4      # )Ú )r…   rl   r†   rM   r\   Údo_insertionsr„   )rA   rP   ÚbufferedÚ
insertionsÚ
lng_bufferÚirm   rn   s   &&      r   rl   Ú&DelegatingLexer.get_tokens_unprocessed1  s²   € ØˆØˆ
Øˆ
Ø×*Ñ*×AÑAÀ$ÖG‰GˆA�!Ø—K‘KÓßØ×%Ñ%¤s¨8£}°jÐ&AÔBØ!#�JØ•’à×!Ñ! 1¨ )Ö,ñ H÷ Ø×Ñœs 8›}¨jÐ9Ô:Ü˜ZØ!Ÿ_™_×CÑCÀHÓMóOð 	Or   )r…   r†   r„   N)
r+   r,   r-   r.   r/   r   rC   rl   r0   r1   r2   s   @r   r   r   !  s!   ø‡ € ñð >Cô (÷Oð Or   c                   ó   € ] tR tRtRtRtR# )r   iH  zA
Indicates that a state should include rules from another state.
r   N©r+   r,   r-   r.   r/   r0   r   r   r   r   r   H  s   † ñó 	r   c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú_inheritiO  z;
Indicates the a state should inherit from its superclass.
c                ó   € R # )Úinheritr   rH   s   &r   rI   Ú_inherit.__repr__S  s   € Ùr   r   N)r+   r,   r-   r.   r/   rI   r0   r1   r2   s   @r   r–   r–   O  s   ø‡ € ñ÷ð r   r–   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚcombinediY  z2
Indicates a state combined from multiple states.
c                ó,   € \         P                  W4      # rk   )Útupler%   )ÚclsÚargss   &*r   r%   Úcombined.__new__^  s   € Ü�}‰}˜SÓ'Ð'r   c                ó   € R # rk   r   )rA   rŸ   s   &*r   rC   Úcombined.__init__a  s   € ár   r   N)	r+   r,   r-   r.   r/   r%   rC   r0   r1   r2   s   @r   r›   r›   Y  s   ø‡ € ñò(÷ð r   r›   c                   óT   a € ] tR tRt o RtR tRR ltRR ltRR ltR t	R	 t
R
tV tR# )Ú_PseudoMatchif  z2
A pseudo match object constructed from a string.
c                ó   € W n         Wn        R # rk   )Ú_textÚ_start)rA   ÚstartrP   s   &&&r   rC   Ú_PseudoMatch.__init__k  s   € ØŒ
ØŽr   Nc                ó   € V P                   # rk   )r§   ©rA   Úargs   &&r   r¨   Ú_PseudoMatch.starto  s   € Ø�{‰{Ðr   c                óN   € V P                   \        V P                  4      ,           # rk   )r§   r\   r¦   r«   s   &&r   ÚendÚ_PseudoMatch.endr  s   € Ø�{‰{œS §¡›_Õ,Ð,r   c                ó@   € V'       d   \        R 4      hV P                  # )zNo such group)Ú
IndexErrorr¦   r«   s   &&r   ÚgroupÚ_PseudoMatch.groupu  s   € ßÜ˜_Ó-Ð-Ø�z‰zÐr   c                ó   € V P                   3# rk   )r¦   rH   s   &r   ÚgroupsÚ_PseudoMatch.groupsz  s   € Ø—
‘
ˆ}Ðr   c                ó   € / # rk   r   rH   s   &r   Ú	groupdictÚ_PseudoMatch.groupdict}  s   € Øˆ	r   )r§   r¦   rk   )r+   r,   r-   r.   r/   rC   r¨   r¯   r³   r¶   r¹   r0   r1   r2   s   @r   r¤   r¤   f  s-   ø‡ € ñòôô-ôò
÷ð r   r¤   c                 ó   a € RV 3R llpV# )zD
Callback that yields multiple actions for each group in the match.
c           
   3   ó,  <"  € \        S4       Fà  w  r4Vf   K  \        V4      \        J dA   VP                  V^,           4      pV'       d   VP	                  V^,           4      WE3x € K\  K^  VP                  V^,           4      pVf   K|  V'       d   VP	                  V^,           4      Vn        V! V \        VP	                  V^,           4      V4      V4       F  pV'       g   K  Vx € K  	  Kâ  	  V'       d   VP                  4       Vn        R # R # 5irk   )Ú	enumerater$   r	   r³   r¨   Úposr¤   r¯   )ÚlexerÚmatchÚctxr‘   ÚactionÚdataÚitemrŸ   s   &&&    €r   ÚcallbackÚbygroups.<locals>.callback…  sÚ   øé € Ü" 4ž‰IˆAØŠ~ÙÜ�f“¤Ó+Ø—{‘{ 1 q¥5Ó)�ßØŸ+™+ a¨!¥eÓ,¨fÐ:Ô:ñ ð —{‘{ 1 q¥5Ó)�ØÔ#ßØ"'§+¡+¨a°!­eÓ"4˜œÙ & uÜ'3°E·K±KÀÀAÅÓ4FÈÓ'MÈsö!T˜ç™4Ø"&œJó!Tñ )÷  Ø—i‘i“kˆCŽGñ ùs%   ƒA	DÁ9DÂDÂADÃ'DÃ;Drk   r   )rŸ   rÅ   s   j r   ÚbygroupsrÇ   �  s   ø€ ÷"ð& €Or   c                   ó   € ] tR tRtRtRtR# )Ú_Thisi›  zL
Special singleton used for indicating the caller class.
Used by ``using``.
r   Nr”   r   r   r   rÉ   rÉ   ›  s   † õr   rÉ   c                óÐ   a aa€ / oRS9   d;   SP                  R4      p\        V\        \        34      '       d   VSR&   MRV3SR&   S \        J d   RVV3R llpV# RV VV3R llpV# )a¢  
Callback that processes the match with a different lexer.

The keyword arguments are forwarded to the lexer, except `state` which
is handled separately.

`state` specifies the state that the new lexer will start in, and can
be an enumerable such as ('root', 'inline', 'string') or a simple
string which is assumed to be on top of the root state.

Note: For that to work, `_other` must not be an `ExtendedRegexLexer`.
ÚstateÚstackÚrootc              3   ób  <"  € S
'       d:   \        V P                  4      pVP                  S
4       V P                  ! R/ VB pMT pVP	                  4       pVP
                  ! VP                  4       3/ S	B  F  w  rgpWe,           Wx3x € K  	  V'       d   VP                  4       Vn        R # R # 5irƒ   )	Údictr>   ÚupdaterG   r¨   rl   r³   r¯   r¾   )r¿   rÀ   rÁ   r)   ÚlxÚsr‘   rm   rn   Ú	gt_kwargsÚkwargss   &&&      €€r   rÅ   Úusing.<locals>.callbackº  sŒ   øé € ÷ ä˜Ÿ™Ó'�Ø—‘˜Ô Ø—_’_Ñ) qÑ)‘à�Ø—‘“ˆAØ×4Ò4°U·[±[³]ÑPÀiÔP‘��aØ•e˜Q�kÔ!ñ QçØŸ)™)›+�–ñ ùs   ƒBB/ÂB/c              3   ó8  <"  € \        V P                  4      pVP                  S4       S	! R/ VB pVP                  4       pVP                  ! VP                  4       3/ S
B  F  w  rgpWe,           Wx3x € K  	  V'       d   VP                  4       Vn        R # R # 5irƒ   )rÏ   r>   rÐ   r¨   rl   r³   r¯   r¾   )r¿   rÀ   rÁ   r)   rÑ   rÒ   r‘   rm   rn   Ú_otherrÓ   rÔ   s   &&&      €€€r   rÅ   rÕ   Ê  s|   øé € ä�U—]‘]Ó#ˆAØ�H‰H�VÔÙ‘˜!‘ˆBà—‘“ˆAØ×4Ò4°U·[±[³]ÑPÀiÔP‘��aØ•e˜Q�kÔ!ñ QçØŸ)™)›+�–ñ ùs   ƒA=BÂBrk   )ÚpoprL   Úlistr�   Úthis)r×   rÔ   rÒ   rÅ   rÓ   s   fl  @r   ÚusingrÛ   ¤  sr   ú€ ð €IØ�&ÔØ�J‰J�wÓˆÜ�aœ$¤˜×'Ò'Ø!"ˆI�gÒà"(¨! ˆI�gÑà”ƒ~÷	&ð 	&ð6 €O÷
	&ñ 
	&ð €Or   c                   ó*   a € ] tR tRt o RtR tRtV tR# )r   iØ  z½
Indicates a state or state action (e.g. #pop) to apply.
For example default('#pop') is equivalent to ('', Token, '#pop')
Note that state tuples may be used as well.

.. versionadded:: 2.0
c                ó   € Wn         R # rk   ©rË   )rA   rË   s   &&r   rC   Údefault.__init__à  s   € ØŽ
r   rÞ   N)r+   r,   r-   r.   r/   rC   r0   r1   r2   s   @r   r   r   Ø  s   ø‡ € ñ÷ð r   c                   ó4   a € ] tR tRt o RtRR ltR tRtV tR# )r   iä  z…
Indicates a list of literal words that is transformed into an optimized
regex that matches any of the words.

.. versionadded:: 2.0
c                ó*   € Wn         W n        W0n        R # rk   )r   ÚprefixÚsuffix)rA   r   râ   rã   s   &&&&r   rC   Úwords.__init__ë  s   € ØŒ
ØŒØŽr   c                óZ   € \        V P                  V P                  V P                  R 7      # )©râ   rã   )r   r   râ   rã   rH   s   &r   r?   Ú	words.getð  s   € Ü˜Ÿ™¨D¯K©KÀÇÁÔLÐLr   )râ   rã   r   N)rŒ   rŒ   )	r+   r,   r-   r.   r/   rC   r?   r0   r1   r2   s   @r   r   r   ä  s   ø‡ € ñô÷
Mð Mr   c                   óR   a € ] tR tRt o RtR tR tR tR tRR lt	R	 t
R
 tRtV tR# )ÚRegexLexerMetaiô  zk
Metaclass for RegexLexer, creates the self._tokens attribute from
self.tokens on the first instantiation.
c                óŽ   € \        V\        4      '       d   VP                  4       p\        P                  ! W4      P
                  # )zBPreprocess the regular expression component of a token definition.)rL   r   r?   ÚreÚcompilerÀ   )rž   ÚregexÚrflagsrË   s   &&&&r   Ú_process_regexÚRegexLexerMeta._process_regexú  s/   € ä�eœV×$Ò$Ø—I‘I“KˆEÜ�zŠz˜%Ó(×.Ñ.Ð.r   c                ód   € \        V4      \        J g   \        V4      '       g   Q RV: 24       hV# )z5Preprocess the token component of a token definition.z0token type must be simple type or callable, not )r$   r	   Úcallable)rž   Útokens   &&r   Ú_process_tokenÚRegexLexerMeta._process_token   s4   € ä�E‹{œjÓ(¬H°U¯OªOð 	IØ>¸u¹iÐHó	IÐ;àˆr   c                óZ  € \        V\        4      '       dH   VR8X  d   R
# W9   d   V3# VR8X  d   V# VR,          R8X  d   \        VR,          4      ) # Q RT: 24       h\        V\        4      '       dq   RV P                  ,          pV ;P                  ^,          un        . pV F5  pWa8w  g   Q RV: 24       hVP                  V P                  VW64      4       K7  	  WSV&   V3# \        V\        4      '       d)   V F   pWb9   d   K  VR9   d   K  Q RV,           4       h	  V# Q R	T: 24       h)z=Preprocess the state transition action of a token definition.ú#popú#push:Né   Nz#pop::rù   NNzunknown new state z_tmp_%dzcircular state ref zunknown new state def éÿÿÿÿ)r÷   rø   )rL   rX   Úintr›   Ú_tmpnameÚextendÚ_process_stater�   )rž   Ú	new_stateÚunprocessedÚ	processedÚ	tmp_stateÚitokensÚistates   &&&&   r   Ú_process_new_stateÚ!RegexLexerMeta._process_new_state  sB  € ä�i¤×%Ò%à˜FÔ"Ø�	ØÔ)Ø!�|Ð#Ø˜gÔ%Ø Ð Ø˜2• 'Ô)Ü˜I b�MÓ*Ð*Ð*à@Ð 2°9±-Ð@Ó@�uÜ˜	¤8×,Ò,à! C§L¡LÕ0ˆIØ�LŠL˜AÕ�LØˆGÛ#�ØÔ*ÐLÐ.AÀ&ÁÐ,LÓLÐ*Ø—‘˜s×1Ñ1°+Ø2;ó Eö Fñ $ð $+�iÑ Ø�<ÐÜ˜	¤5×)Ò)ã#�ØÖ-ØÐ"3Ö3ð2à(¨6Õ1ó2ð 4ñ $ð Ðà@Ð2°9±-Ð@Ó@�5r   c                ó  € \        V\        4      '       g   Q RV: 24       hV^ ,          R8w  g   Q RV: 24       hW29   d	   W#,          # . ;qBV&   V P                  pW,           EFd  p\        V\        4      '       d>   Wc8w  g   Q RV: 24       hVP	                  V P                  W\        V4      4      4       KW  \        V\        4      '       d   Ko  \        V\        4      '       dQ   V P                  VP                  W4      pVP                  \        P                  ! R4      P                  RV34       KÕ  \        V4      \        J g   Q RV: 24       h V P!                  V^ ,          WS4      pT P'                  T^,          4      p
\)        T4      ^8X  d   RpMT P                  T^,          Y4      pTP                  YŠT34       EKg  	  V#   \"         d(   p	\%        RT^ ,          : R	T: R
T : RT	 24      T	hRp	?	ii ; i)z%Preprocess a single state definition.zwrong state name Ú#zinvalid state name zcircular state reference rŒ   Nzwrong rule def zuncompilable regex z
 in state z of z: )rL   rX   Úflagsr   rý   rþ   r–   r   r  rË   rM   rë   rì   rÀ   r$   r�   rï   Ú	ExceptionÚ
ValueErrorrô   r\   )rž   r   r  rË   Útokensrî   Útdefrÿ   ÚrexÚerrró   s   &&&&       r   rþ   ÚRegexLexerMeta._process_state)  sò  € ä˜%¤×%Ò%ÐDÐ):¸5¹)Ð'DÓDÐ%Ø�Q�x˜3ŒÐ?Ð"5°e±YÐ ?Ó?ˆØÔØÕ#Ð#Ø$&Ð&ˆ˜5Ñ!Ø—‘ˆØ×&Ñ&ˆDÜ˜$¤×(Ò(à”}ÐKÐ(AÀ%ÁÐ&KÓK�}Ø—‘˜c×0Ñ0°Ü14°T³ó<ô =áÜ˜$¤×)Ò)ñ Ü˜$¤×(Ò(Ø×2Ñ2°4·:±:¸{ÓV�	Ø—‘œrŸzšz¨"›~×3Ñ3°T¸9ÐEÔFÙä˜“:¤Ó&ÐB¨/¸$¹Ð(BÓBÐ&ðrØ×(Ñ(¨¨a­°&Ó@�ð ×&Ñ& t¨A¥wÓ/ˆEä�4‹y˜AŒ~Ø ‘	à×2Ñ2°4¸µ7Ø3>óK�	ð �M‰M˜3 yÐ1×2ñA 'ðB ˆøô ô rÜ Ð#6°t¸Aµw±kÀÈEÉ9ÐTXÐY\ÑX_Ð_aÐbeÐafÐ!gÓhÐnqÐqûðrús   ÅGÇH Ç"G;Ç;H Nc                ó¨   € / ;q0P                   V&   T;'       g    V P                  V,          p\        V4       F  pV P                  W#V4       K  	  V# )z-Preprocess a dictionary of token definitions.)Ú_all_tokensr  rÙ   rþ   )rž   r'   Ú	tokendefsr  rË   s   &&&  r   Úprocess_tokendefÚRegexLexerMeta.process_tokendefT  sM   € à,.Ð.ˆ	—O‘O DÑ)Ø×1Ð1 §¡¨DÕ!1ˆ	Ü˜)–_ˆEØ×Ñ˜y°UÖ;ñ %àÐr   c                óÔ  € / p/ pV P                    F¯  pVP                  P                  R/ 4      pVP                  4        F|  w  rVVP                  V4      pVf!   WaV&    VP	                  \
        4      pY‚T&   K:  VP                  VR4      pVf   KR  WgWˆ^,           %  VP	                  \
        4      p	W‰,           W%&   K~  	  K±  	  V#   \         d     K”  i ; i  \         d     K¦  i ; i)aË  
Merge tokens from superclasses in MRO order, returning a single tokendef
dictionary.

Any state that is not defined by a subclass will be inherited
automatically.  States that *are* defined by subclasses will, by
default, override that state in the superclass.  If a subclass wishes to
inherit definitions from a superclass, it can use the special value
"inherit", which will cause the superclass' state definition to be
included at that point in the state.
r  N)Ú__mro__Ú__dict__r?   ÚitemsÚindexr˜   r  rØ   )
rž   r  ÚinheritableÚcÚtoksrË   r  ÚcuritemsÚinherit_ndxÚnew_inh_ndxs
   &         r   Úget_tokendefsÚRegexLexerMeta.get_tokendefs\  sø   € ð ˆØˆØ—”ˆAØ—:‘:—>‘> (¨BÓ/ˆDà $§
¡
¦‘�Ø!Ÿ:™: eÓ,�ØÒ#ð
 %*˜5‘Mð!Ø&+§k¡k´'Ó&:˜ð *5 Ñ&Ùà)Ÿo™o¨e°TÓ:�ØÒ&Ùð 7<˜°¥]Ð3ðCð #(§+¡+¬gÓ"6�Kð *5Õ)B�KÓ&ó9 !-ñ ðB ˆøô) &ô !Ú ð!ûô "ô Úðús$   ÁCÂCÃCÃCÃC'Ã&C'c                ó  € RV P                   9  dY   / V n        ^ V n        \        V R4      '       d   V P                  '       d   M%V P                  RV P                  4       4      V n        \        P                  ! V .VO5/ VB # )z:Instantiate cls after preprocessing its token definitions.Ú_tokensÚtoken_variantsrŒ   )
r  r  rü   Úhasattrr%  r  r!  r$  r$   Ú__call__)rž   rŸ   Úkwdss   &*,r   r'  ÚRegexLexerMeta.__call__�  sn   € à˜CŸL™LÔ(Ø ˆCŒOØˆCŒLÜ�sÐ,×-Ò-°#×2D×2DÐ2Dàà!×2Ñ2°2°s×7HÑ7HÓ7JÓK�”ä�}Š}˜SÐ0 4Ò0¨4Ñ0Ð0r   r   rk   )r+   r,   r-   r.   r/   rï   rô   r  rþ   r  r!  r'  r0   r1   r2   s   @r   ré   ré   ô  s6   ø‡ € ñò
/òò!AòF)ôVò/÷b1ð 1r   ré   c                   óJ   a € ] tR tRt o Rt]P                  t/ tRR lt	Rt
V tR# )r   i›  z¡
Base for simple stateful regular expression-based lexers.
Simplifies the lexing process so that you need only
provide a list of states and regular expressions.
c              #  óâ  "  € ^ pV P                   p\        V4      pWER,          ,          p V EFY  w  rxp	V! W4      p
V
'       g   K  Ve9   \        V4      \        J d   W8V
P	                  4       3x € MV! W
4       Rj  x€L
  V
P                  4       pV	eð   \        V	\        4      '       dh   V	 F`  pVR8X  d%   \        V4      ^8”  d   VP                  4        K,  K.  VR8X  d   VP                  VR,          4       KO  VP                  V4       Kb  	  Mc\        V	\        4      '       d#   \        V	4      \        V4      8¼  d   VR M0WYR1 M+V	R8X  d   VP                  VR,          4       MQ RT	: 24       hWER,          ,          p EK_  	   W,          R8X  d$   R.pVR,          pV\        R3x € V^,          pEK’  V\        W,          3x € V^,          pEK¯   EL\  \         d     R# i ; i5i)	zf
Split ``text`` into (tokentype, text) pairs.

``stack`` is the initial stack (default: ``['root']``)
Nr÷   rø   ºé   NNúwrong state def: rV   rÍ   rú   )r$  rÙ   r$   r	   r³   r¯   rL   r�   r\   rØ   rM   rû   Úabsr   r   r²   )rA   rP   rÌ   r¾   r  Ú
statestackÚstatetokensÚrexmatchrÂ   rÿ   ÚmrË   s   &&&         r   rl   Ú!RegexLexer.get_tokens_unprocessed¾  sÅ  é € ð ˆØ—L‘Lˆ	Ü˜%“[ˆ
Ø¨2¥Õ/ˆØÜ/:Ñ+� )Ù˜TÓ'�ß‘1ØÒ)Ü ›<¬:Ó5Ø"%¨q¯w©w«yÐ"8Ó8á'-¨d£×6Ð6ØŸ%™%›'�CØ Ò,ä% i´×7Ò7Û)2 Ø#(¨F¤?Ü'*¨:£¸Ô':Ø(2¯©Ö(8ñ (;à%*¨gÔ%5Ø$.×$5Ñ$5°jÀµnÖ$Eà$.×$5Ñ$5°eÖ$<ò *3ô (¨	´3×7Ò7ô  # 9›~´°Z³Ô@Ø$.¨r¡Nà$.©zÑ$:Ø&¨'Ô1Ø&×-Ñ-¨j¸­nÕ=àKÐ,=¸i¹]Ð*KÓK 5Ø&/¸2µÕ&?˜ÛñC 0;ðJØ•y DÔ(à&, X˜
Ø&/°Õ&7˜Ø!¤:¨tÐ3Ò3Ø˜q�˜Ú Øœu d¥iÐ/Ò/Ø˜1•H“CòO 7øôP "ô ÚðüsI   ‚A G/Á7G/Á>GÁ?DG/Æ-G Æ:G/Æ=G ÇG/ÇG,Ç(G/Ç+G,Ç,G/r   N©)rÍ   )r+   r,   r-   r.   r/   rë   Ú	MULTILINEr	  r  rl   r0   r1   r2   s   @r   r   r   ›  s&   ø‡ € ñð �L‰L€Eð0 €F÷;ò ;r   c                   ó4   a € ] tR tRt o RtRR ltR tRtV tR# )r   iü  z1
A helper object that holds lexer position data.
Nc                óv   € Wn         W n        T;'       g    \        V4      V n        T;'       g    R .V n        R# )rÍ   N)rP   r¾   r\   r¯   rÌ   )rA   rP   r¾   rÌ   r¯   s   &&&&&r   rC   ÚLexerContext.__init__  s0   € ØŒ	ØŒØ×#Ð#œ#˜d›)ˆŒØ×&Ð&˜v˜hˆŽ
r   c                ó\   € R V P                   : RV P                  : RV P                  : R2# )zLexerContext(z, Ú))rP   r¾   rÌ   rH   s   &r   rI   ÚLexerContext.__repr__  s)   € Ø˜tŸy™y™m¨2¨d¯h©h©\¸¸D¿J¹J¹>ÈÐKÐKr   )r¯   r¾   rÌ   rP   ©NN)	r+   r,   r-   r.   r/   rC   rI   r0   r1   r2   s   @r   r   r   ü  s   ø‡ € ñô'÷Lð Lr   c                   ó.   a € ] tR tRt o RtRR ltRtV tR# )r   i  z=
A RegexLexer that uses a context object to store its state.
Nc              #  ót  "  € V P                   pV'       g   \        V^ 4      pVR,          pM'TpW4P                  R,          ,          pVP                  p V EF  w  rgpV! WP                  VP
                  4      p	V	'       g   K.  Vez   \        V4      \        J d5   VP                  WyP                  4       3x € V	P                  4       Vn        M2V! W	V4       Rj  x€L
  V'       g   W4P                  R,          ,          pVEe_   \        V\        4      '       dš   V F’  p
V
R8X  d9   \        VP                  4      ^8”  d   VP                  P                  4        K@  KB  V
R8X  d/   VP                  P                  VP                  R,          4       Kw  VP                  P                  V
4       K”  	  M–\        V\        4      '       dB   \        V4      \        VP                  4      8¼  d   VP                  R MOVP                  VR1 M?VR8X  d.   VP                  P                  VP                  R,          4       MQ RT: 24       hW4P                  R,          ,          p EK  	   VP                  VP
                  8¼  d   R# WP                  ,          R8X  dC   R.Vn        VR,          pVP                  \         R3x € V;P                  ^,          un        EKŽ  VP                  \"        WP                  ,          3x € V;P                  ^,          un        EKÏ   ELG  \$         d     R# i ; i5i)	zg
Split ``text`` into (tokentype, text) pairs.
If ``context`` is given, use this lexer context instead.
rÍ   Nr÷   rø   r,  r.  rV   rú   )r$  r   rÌ   rP   r¾   r¯   r$   r	   r³   rL   r�   r\   rØ   rM   rû   r/  r   r   r²   )rA   rP   Úcontextr  rÁ   r1  r2  rÂ   rÿ   r3  rË   s   &&&        r   rl   Ú)ExtendedRegexLexer.get_tokens_unprocessed  sb  é € ð
 —L‘Lˆ	ßÜ˜t QÓ'ˆCØ# FÕ+‰KàˆCØ#§I¡I¨b¥MÕ2ˆKØ—8‘8ˆDØÜ/:Ñ+� )Ù˜T§7¡7¨C¯G©GÓ4�ß‘1ØÒ)Ü ›<¬:Ó5Ø"%§'¡'¨6·7±7³9Ð"<Ò<Ø&'§e¡e£g˜C�Gá'-¨d°sÓ';×;Ð;ß#,à.7¿	¹	À"½Õ.F à Ó,ä% i´×7Ò7Û)2 Ø#(¨F¤?Ü'*¨3¯9©9£~¸Ô'9Ø(+¯	©	¯©®ñ (:à%*¨gÔ%5Ø$'§I¡I×$4Ñ$4°S·Y±Y¸rµ]Ö$Cà$'§I¡I×$4Ñ$4°UÖ$;ò *3ô (¨	´3×7Ò7ä" 9›~´°S·Y±Y³Ô?Ø$'§I¡I¨b¡Mà$'§I¡I¨i©jÑ$9Ø&¨'Ô1ØŸI™I×,Ñ,¨S¯Y©Y°r­]Õ;àKÐ,=¸i¹]Ð*KÓK 5Ø&/·	±	¸"µÕ&>˜ÛñG 0;ðJØ—w‘w #§'¡'Ô)ÙØŸG™G•}¨Ô,à%+ H˜œ	Ø&/°Õ&7˜Ø!Ÿg™g¤t¨TÐ1Ò1ØŸš 1��Ú ØŸ'™'¤5¨$¯w©w­-Ð7Ò7Ø—G’G˜q•L—G�GòQ <øôR "ô Úðüs]   ‚A>L8ÂAL8ÃL#ÃL8Ã)FL8É,L& ÊL8Ê	AL& ËL8Ë">L& Ì L8Ì&L5Ì1L8Ì4L5Ì5L8r   r=  )r+   r,   r-   r.   r/   rl   r0   r1   r2   s   @r   r   r     s   ø‡ € ñ÷@ò @r   c              #  óú  "  € \        V 4      p  \        V 4      w  r#RpRpT FÆ  w  rgpTf   Tp^ p	T'       d~   T\        T4      ,           T8¼  dg   Y‰Y&,
           p
T
'       d   YGT
3x € T\        T
4      ,          pT F  w  r¼pYLT3x € T\        T4      ,          pK   	  Y&,
          p	 \        T 4      w  r#K…  T	\        T4      8  g   K¥  YGY‰R 3x € T\        T4      T	,
          ,          pKÈ  	  T'       dA   T;'       g    ^ pT F  w  rçpYGT3x € T\        T4      ,          pK   	   \        T 4      w  r#KH  R#   \         d    T Rj  x€L 
   R# i ; i  \         d    Rp K®  i ; i  \         d    Rp R# i ; i5i)aC  
Helper for lexers which must combine the results of several
sublexers.

``insertions`` is a list of ``(index, itokens)`` pairs.
Each ``itokens`` iterable should be inserted at position
``index`` into the token stream given by the ``tokens``
argument.

The result is a combined token stream.

TODO: clean up the code here.
NTF)ÚiterÚnextÚStopIterationr\   )r�   r  r  r  ÚrealposÚinsleftr‘   rm   rn   ÚoldiÚtmpvalÚit_indexÚit_tokenÚit_valueÚps   &&             r   r�   r�   S  s”  é € ô �jÓ!€JðÜ˜jÓ)‰ˆð €GØ€Gó ‰ˆˆaàŠ?ØˆGØˆß˜!œc !›f�*¨Ô-Ø˜E�IÐ&ˆFßØ &Ð(Ò(Øœ3˜v›;Õ&�Û07Ñ,� HØ¨Ð1Ò1Øœ3˜x›=Õ(’ñ 18ð •9ˆDðÜ!% jÓ!1‘�‘wð ”#�a“&Ž=Ø˜a ˜hÐ&Ò&Ø”s˜1“v •}Õ$ŠGñ+ ÷0 à—,�,˜QˆÛ‰GˆA�!Ø˜a�-ÒØ”s˜1“vÕŠGñ ð	Ü! *Ó-‰NˆE‘7ñ øôE ô à×ÑÚðûô4 !ô Ø�Úðûô  ô 	ØˆGÚð	üs“   ‚E;�D6 œE;¸A-E;Â&EÂ3E;Ã,E;Ã4E;Ã='E;Ä%E' Ä2E;Ä6EÅE	ÅEÅE;ÅEÅE;ÅE$Å E;Å#E$Å$E;Å'E8Å4E;Å7E8Å8E;c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚProfilingRegexLexerMetai“  z>Metaclass for ProfilingRegexLexer, collects regex timing info.c                óú   a aaa€ \        V\        4      '       d.   \        VP                  VP                  VP                  R 7      oMVo\
        P                  ! SV4      o\        P                  3V VVV3R llpV# )ræ   c                 ó.  <€ SP                   R,          P                  S
S	3^ R.4      p\        P                  ! 4       pSP                  WV4      p\        P                  ! 4       pV^ ;;,          ^,          uu&   V^;;,          Wd,
          ,          uu&   V# )r-  r   rú   )Ú
_prof_dataÚ
setdefaultÚtimerÀ   )rP   r¾   ÚendposÚinfoÚt0ÚresÚt1rž   Úcompiledr  rË   s   &&&    €€€€r   Ú
match_funcÚ:ProfilingRegexLexerMeta._process_regex.<locals>.match_funcž  sn   ø€ Ø—>‘> "Õ%×0Ñ0°%¸°ÀÀ3¸xÓHˆDÜ—’“ˆBØ—.‘. ¨FÓ3ˆCÜ—’“ˆBØ��G�q�L‹GØ��G�r•wÕ‹GØˆJr   )	rL   r   r   râ   rã   rë   rì   ÚsysÚmaxsize)rž   rí   rî   rË   r[  rZ  r  s   f&&f @@r   rï   Ú&ProfilingRegexLexerMeta._process_regex–  s]   û€ Ü�eœU×#Ò#Ü˜EŸK™K°·±Ø#(§<¡<ô1‰Cð ˆCÜ—:’:˜c 6Ó*ˆä),¯©÷ 	ò 	ð Ðr   r   N)r+   r,   r-   r.   r/   rï   r0   r1   r2   s   @r   rO  rO  “  s   ø‡ € ÙH÷ð r   rO  c                   ó6   a € ] tR tRt o Rt. t^tRR ltRtV t	R# )ÚProfilingRegexLexeri©  zFDrop-in replacement for RegexLexer that does profiling of its regexes.c              #  ón  a "  € S P                   P                  P                  / 4       \        P	                  S W4       R j  x€L
  S P                   P                  P                  4       p\        R VP                  4        4       V 3R lRR7      p\        R V 4       4      p\        4        \        RS P                   P                  \        V4      V3,          4       \        R4       \        R:R R	R
:R R24       \        R4       V F  p\        RV,          4       K  	  \        R4       R #  Lð5i)Nc              3   óÆ   "  € T FW  w  w  rw  r4V\        V4      P                  R 4      P                  RR4      R,          VRV,          RV,          V,          3x € KY  	  R# 5i)zu'z\\Ú\:NéA   Niè  N)Úreprr_   rT   )Ú.0rÒ   ÚrÚnrm   s   &    r   Ú	<genexpr>Ú=ProfilingRegexLexer.get_tokens_unprocessed.<locals>.<genexpr>´  sZ   é € ð @á/>Ñ+™F˜Q¡F Qð œ4 ›7Ÿ=™=¨Ó/×7Ñ7¸ÀÓEÀcÕJØ˜4 !�8 T¨A¥X°¥\õ3ã/>ùs   ‚AA!c                 ó*   <€ V SP                   ,          # rk   )Ú_prof_sort_index)r   rA   s   &€r   r   Ú<ProfilingRegexLexer.get_tokens_unprocessed.<locals>.<lambda>·  s   ø€  A d×&;Ñ&;Ö$<r   T)ÚkeyÚreversec              3   ó2   "  € T F  q^,          x € K  	  R# 5i)é   Nr   )rg  r   s   & r   rj  rk  ¹  s   é € Ð+¡d ˜!Ÿš£dùs   ‚z2Profiling result for %s lexing %d chars in %.3f msrË   Ú20Ú rí   Ú64z ncalls  tottime  percallz%-20s %-65s %5d %8.4f %8.4fzn==============================================================================================================zn--------------------------------------------------------------------------------------------------------------)rG   rR  rM   r   rl   rØ   Úsortedr  ÚsumÚprintr+   r\   )rA   rP   rÌ   ÚrawdatarÃ   Ú	sum_totalr)   s   f&&    r   rl   Ú*ProfilingRegexLexer.get_tokens_unprocessed¯  sõ   øé € à�‰×!Ñ!×(Ñ(¨Ô,Ü×4Ñ4°T¸4ÓG×GÐGØ—.‘.×+Ñ+×/Ñ/Ó1ˆÜñ @à/6¯}©}¬ó@ô =Ø"ô	$ˆô
 Ñ+¡dÓ+Ó+ˆ	äŒÜÐBØ�~‰~×&Ñ&¬¨D«	°9Ð=õ>ô 	?äˆiÔÜ¼ÄÐIÔJÜˆiÔÛˆAÜÐ/°!Õ3Ö4ñ äˆiÖñ# 	Hùs   ƒ?D5ÁD3ÁC1D5r   Nr5  )
r+   r,   r-   r.   r/   rR  rm  rl   r0   r1   r2   s   @r   ra  ra  ©  s   ø‡ € ÙPà€JØÐ÷ò r   ra  )r   r   r   r   r   r   r˜   rÇ   rÛ   rÚ   r   r   Úline_re))s   ï»¿rU   )s   ÿþ  zutf-32)s     þÿzutf-32be)s   ÿþzutf-16)s   þÿzutf-16be)6r/   rë   r]  rT  Úpygments.filterr   r   Úpygments.filtersr   Úpygments.tokenr   r   r   r   r	   Úpygments.utilr
   r   r   r   r   r   Úpygments.regexoptr   Ú__all__rì   r|  rZ   ÚstaticmethodÚ_default_analyser$   r!   r   r   rX   r   r–   r˜   r�   r›   r¤   rÇ   rÉ   rÚ   rÛ   r   r   ré   r   r   r   r�   rO  ra  r   r   r   Ú<module>r…     sJ  ðñó 
Û 
Û ç 1Ý /ß EÕ E÷*÷ *å 'ò*€ð �*Š*�WÓ
€ò,€ñ  ¡Ó.Ð ô	1�ô 	1ôm"�iõ m"ô`O�eô OôN	ˆcô 	÷ñ ñ ‹*€ô
ˆuô 
÷ñ ò6÷4ñ ñ ƒw€ò1÷h	ñ 	ôMˆFô Mô d1�Yô d1ôN^� .õ ^÷BLñ LôE˜ô EòP=ô@˜nô ô,˜*Ð0G÷ r   