o
    h(                     @   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   k/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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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rt || }|d |k r+||d  nd }|dkrI|  jd7  _|  jd7  _| j| _	tj
d |fS |dkrk|  j|dkrVdnd7  _|  jd7  _| j| _	tj
d |fS |dkr|  jd7  _| d | j| jk r| j| j dkr|  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
| |)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   limitcur_char	next_charr"   r   r   r   r    .   sN   



zLexer.next_c                 C   sH   | j }|| jk r| j| |v r|d7 }|| jk r| j| |v s|| _ d S Nr   r   r   r   )r   validpr   r   r   r,   Y   
   
zLexer.scan_over_c                 C   sH   | j }|| jk r| j| |vr|d7 }|| jk r| j| |vs|| _ d S r8   r9   )r   stop_atr;   r   r   r   r/   _   r<   zLexer.scan_until_N)__name__
__module____qualname__r   r   r   r   r-   CHAR_NEWLINE_r2   CHAR_UC_LETTER_CHAR_LC_LETTER_CHAR_UNDERSCORE_CHAR_PERIOD_r0   r1   r   r   r   r   r%   r    r,   r/   r   r   r   r   r      s.    +r   N)fontTools.voltLib.errorr   objectr   r   r   r   r   <module>   s    