a
    èÝEbY  ã                   @   s    d dl mZ G dd„ deƒZdS )é    )ÚVoltLibErrorc                   @   s�   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZe
e e e Zee	 Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚLexerÚNUMBERÚSTRINGÚNAMEÚNEWLINEz 	z
Ú
0123456789ÚABCDEFGHIJKLMNOPQRSTUVWXYZÚabcdefghijklmnopqrstuvwxyzÚ_Ú.c                 C   s,   || _ d| _d| _d| _|| _t|ƒ| _d S )Né   r   )Ú	filename_Úline_Úpos_Úline_start_Útext_ÚlenÚtext_length_)ÚselfÚtextÚfilename© r   úW/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/fontTools/voltLib/lexer.pyÚ__init__   s    zLexer.__init__c                 C   s   | S ©Nr   ©r   r   r   r   Ú__iter__   s    zLexer.__iter__c                 C   s   |   ¡ S r   )Ú__next__r   r   r   r   Únext   s    z
Lexer.nextc                 C   s*   |   ¡ \}}}|tjhvr |||fS q d S r   )Únext_r   r   )r   Ú
token_typeÚtokenÚlocationr   r   r   r   "   s    zLexer.__next__c                 C   s"   | j | j d }| jpd| j|fS )Nr   z<volt>)r   r   r   r   )r   Úcolumnr   r   r   Ú	location_(   s    zLexer.location_c                 C   s   |   tj¡ |  ¡ }| j}| j}t|ƒ}||kr6tƒ ‚|| }|d |k rV||d  nd }|dkr’|  jd7  _|  jd7  _| j| _	tj
d |fS |dkrÖ|  j|dkr¬dnd7  _|  jd7  _| j| _	tj
d |fS |dk�rN|  jd7  _|  d¡ | j| jk �rD| j| j dk�rD|  jd7  _tj||d | jd … |fS td|ƒ‚|tjv �rŽ|  jd7  _|   tj¡ ||| j… }tj||fS |tjv �rÂ|   tj¡ tjt||| j… dƒ|fS |d	k�r|tjv �r|  jd7  _|   tj¡ tjt||| j… dƒ|fS td
| |ƒ‚d S )Nr   Ú
úé   ú"z"
z Expected '"' to terminate stringé
   ú-zUnexpected character: '%s')Ú
scan_over_r   ÚCHAR_WHITESPACE_r%   r   r   r   ÚStopIterationr   r   r   Úscan_until_r   r   r   ÚCHAR_NAME_START_ÚCHAR_NAME_CONTINUATION_r   ÚCHAR_DIGIT_r   Úint)r   r#   Ústartr   ÚlimitZcur_charZ	next_charr"   r   r   r   r    ,   sV    

 ÿÿzLexer.next_c                 C   s2   | j }|| jk r(| j| |v r(|d7 }q|| _ d S ©Nr   ©r   r   r   )r   ZvalidÚpr   r   r   r,   Y   s    
zLexer.scan_over_c                 C   s2   | j }|| jk r(| j| |vr(|d7 }q|| _ d S r6   r7   )r   Zstop_atr8   r   r   r   r/   _   s    
zLexer.scan_until_N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r-   ZCHAR_NEWLINE_r2   ZCHAR_UC_LETTER_ZCHAR_LC_LETTER_ZCHAR_UNDERSCORE_ZCHAR_PERIOD_r0   r1   r   r   r   r   r%   r    r,   r/   r   r   r   r   r      s.   
ÿ-r   N)ZfontTools.voltLib.errorr   Úobjectr   r   r   r   r   Ú<module>   s   