a
    w=icY                     @   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   h/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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rd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   