
    G@d              	       (   d Z ddlZddlmZ  ej        d          Z ei ddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,          Zd- e                                D             Z G d. d/e          Z	d0 Z
dS )1zLexer to tokenize snippet text.    N)OrderedDictz\s
text_colonz^\\:$colonz^:$
colon_plusz^:\+$
colon_dashz^:-$colon_questionz^:\?$
text_commaz^\\\,$text_dollarz^\\\$$	text_pipez^\\\|$text_right_curlyz^\\}$text_backslashz^\\$
text_slashz^\\\/$dollarz^\$$intz^\d+$
left_curlyz^\{$right_curlyz^\}$pipez^\|$casez^/upcase|/downcase|/capitalize$z^/$z^,$z^\{[a-zA-Z_]\w*$z^(?=[\w])(?=[^\d])\w*$z^(?=[^_\w]$)(?=[^\s]$))slashcommaleft_curly_namenamesymbolc                 >    i | ]\  }}|t          j        |          S  )recompile).0r   rs      ;lib/python3.11/site-packages/spyder/utils/snippets/lexer.py
<dictcomp>r!   '   s&    FFFwtQtRZ]]FFF    c                   4    e Zd Zd	dZd Zd Zd Zd Zd ZdS )
Tokenr   c                 >    || _         || _        || _        || _        d S N)tokenvaluelinecol)selfr'   r(   r)   r*   s        r    __init__zToken.__init__+   s"    

	r"   c                 B    d                     | j        | j                  S )Nz
<{0}, {1}>)formatr'   r(   r+   s    r    __str__zToken.__str__1   s    ##DJ
;;;r"   c                 *    |                                  S r&   )r0   r/   s    r    __repr__zToken.__repr__4   s    ||~~r"   c                 P    t          |t                    sdS | j        |j        k    S )NF
isinstancer$   r'   r+   ys     r    __eq__zToken.__eq__7   s(    !U## 	5zQW$$r"   c                 P    t          |t                    sdS | j        |j        k    S )NTr4   r6   s     r    __neq__zToken.__neq__<   s(    !U## 	4zQW$$r"   c                 *    t          | j                  S r&   )hashr'   r/   s    r    __hash__zToken.__hash__A   s    DJr"   N)r   r   )	__name__
__module____qualname__r,   r0   r2   r8   r:   r=   r   r"   r    r$   r$   *   ss           < < <  % % %
% % %
         r"   r$   c                    g }d}d}d}|t          |           k     r| |         }t                              |          a|*t          ||d|dz             }|                    |           t          d|d|dz             }|                    |           d}d}|dz  }nu||z   }d}t
          D ],}	t
          |	         }
|
                    |          |	}d}|} n-|s1|.t          ||d|dz             }|                    |           d}d}n|}|dz  }|t          |           k     |*t          ||d|dz             }|                    |           |S )	z'Split snippet into well-defined tokens. r   N   
whitespace)r)   r*   FT)lenrD   matchr$   appendtoken_regex)snippettokenswordi	last_namecr'   	temp_wordmatch_found
token_nameregexs              r    tokenizerS   E   s   FD	AI
c'll

AJA*$iq!a%88e$$$,q1u===EMM%   DIFAAqIK)  
#J/;;y))5 *I"&K$DE	 6
  (!)T1a!e<<EMM%(((D $I Q; c'll

< iq!a%00eMr"   )__doc__r   collectionsr   r   rD   rH   itemsobjectr$   rS   r   r"   r    <module>rX      s   & % 				 # # # # # #RZ
k (V ( '	
 h ) 9   g ) g 
8 ' 7  G!" .#$ *%'-    2 GF+2C2C2E2EFFF         F      6' ' ' ' 'r"   