
    Je              	       V   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ej                         D  ci c]  \  } }|  ej                  |       c}} Z G d- d.e      Z	d/ Z
yc c}} w )0z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                   2    e Zd ZddZd Zd Zd Zd Zd Zy)	Tokenc                 <    || _         || _        || _        || _        y N)tokenvaluelinecol)selfr   r   r    r!   s        =/usr/lib/python3/dist-packages/spyder/utils/snippets/lexer.py__init__zToken.__init__+   s    

	    c                 N    dj                  | j                  | j                        S )Nz
<{0}, {1}>)formatr   r   r"   s    r#   __str__zToken.__str__1   s    ##DJJ

;;r%   c                 "    | j                         S r   )r)   r(   s    r#   __repr__zToken.__repr__4   s    ||~r%   c                 V    t        |t              sy| j                  |j                  k(  S )NF
isinstancer   r   r"   ys     r#   __eq__zToken.__eq__7   s"    !U#zzQWW$$r%   c                 V    t        |t              sy| j                  |j                  k7  S )NTr-   r/   s     r#   __neq__zToken.__neq__<   s"    !U#zzQWW$$r%   c                 ,    t        | j                        S r   )hashr   r(   s    r#   __hash__zToken.__hash__A   s    DJJr%   N)r   r   )	__name__
__module____qualname__r$   r)   r+   r1   r3   r6    r%   r#   r   r   *   s     <%
%
 r%   r   c                 :   g }d}d}d}|t        |       k  r| |   }t        j                  |      Q|"t        ||d|dz         }|j	                  |       t        d|d|dz         }|j	                  |       d}d}|dz  }nf||z   }d}t
        D ]$  }	t
        |	   }
|
j                  |      |	}d}|} n |s)|.t        ||d|dz         }|j	                  |       d}d}n|}|dz  }|t        |       k  r|"t        ||d|dz         }|j	                  |       |S )	z'Split snippet into well-defined tokens. r   N   
whitespace)r    r!   FT)lenr>   matchr   appendtoken_regex)snippettokenswordi	last_namecr   	temp_wordmatch_found
token_nameregexs              r#   tokenizerM   E   s[   FD	AI
c'l
AJA*$iq!a%8e$,q1u=EMM% DIFAqIK) 
#J/;;y)5 *I"&K$D (!)T1a!e<EMM%(D $I Q; c'l
< iq!a%0eMr%   )__doc__recollectionsr   compiler>   rB   itemsobjectr   rM   )r   rs   00r#   <module>rU      sS   & 	 #RZZ
 (V ( '	
 h ) 9   g ) g 
8 ' 7  G!" .#$ *%'- 2 3>2C2C2EFwtQtZRZZ]"F F  6'= Gs   5B%