403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.52
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/fontTools/feaLib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/fontTools/feaLib/__pycache__/lexer.cpython-312.pyc
�

jke#,���ddlmZmZddlmZddlZddlZ	ddlZGd�de
�ZGd�de
�ZGd	�d
e�Z
y#e$r	ddl	mZY�/wxYw)�)�FeatureLibError�IncludedFeaNotFound)�FeatureLibLocationN)�cythonc���eZdZdZdZdZeeefZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZedzZeezdzZej4d�ZdZdZd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d �Z&y!)"�Lexer�NUMBER�HEXADECIMAL�OCTAL�FLOAT�STRING�NAME�FILENAME�
GLYPHCLASS�CID�SYMBOL�COMMENT�NEWLINE�ANONYMOUS_BLOCKz 	z
z,;:-+'{}[]<>()=�
0123456789�0123456789ABCDEFabcdef�4ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz	_+*:.^~!\z
_.+*:^~!/-z^[A-Za-z_0-9.\-]+$�NORMALc��||_d|_d|_d|_||_t|�|_tj|_	y)N�r)
�	filename_�line_�pos_�line_start_�text_�len�text_length_r�MODE_NORMAL_�mode_)�self�text�filenames   �8/usr/lib/python3/dist-packages/fontTools/feaLib/lexer.py�__init__zLexer.__init__+s?��!�����
���	������
���I����'�'��
�c��|S�N��r%s r(�__iter__zLexer.__iter__4����r*c�"�|j�Sr,��__next__r.s r(�nextz
Lexer.next7����}�}��r*c�^�	|j�\}}}|tjk7r|||fS�-r,)�next_rr)r%�
token_type�token�locations    r(r3zLexer.__next__:s5���*.�*�*�,�'�J��x��U�]�]�*�"�E�8�4�4�r*c��|j|jz
dz}t|jxsd|j|�S)Nrz
<features>)rrrrr)r%�columns  r(�	location_zLexer.location_@s7�����T�-�-�-��1��!�$�.�.�"@�L�$�*�*�f�U�Ur*c���|jtj�|j�}|j}|j
}t
|�}||k\r
t��||}|dz|kr||dznd}|dk(rN|xjdz
c_|xjdz
c_|j|_	tjd|fS|dk(rU|xj|dk(rdndz
c_|xjdz
c_|j|_	tjd|fS|dk(r?|jtj�tj|||j|fS|jtjur�|dk7rt!d|��|jd�|j|kr||jnd}|dk7rt!d	|��|xjdz
c_tj"|_tj$||dz|jdz
|fS|d
k(rs|tj&vra|xjdz
c_|jtj&�tj(t+||dz|jd�|fS|dk(r�|xjdz
c_|jtj,�||dz|j}t
|�dkrt!d
|��t
|�dkDrt!d|��tj.j1|�st!d|��tj2||fS|tj4vrp|xjdz
c_|jtj,�|||j}|dk(rtj|_tj6||fS|dk(rb|dvr^|xjdz
c_|jtj8�tj:t+|||jd�|fS|dk(r[|tj&vrI|jtj&�tj<t+|||jd�|fS|tj&vr�|jtj&�|j|k\s||jdk7r*tj>t+|||jd�|fS|jd�|jtj&�tj@tC|||j�|fS|dk(r�|tj&vr�|xjdz
c_|jtj&�|j|k\s||jdk7r*tj>t+|||jd�|fS|jd�|jtj&�tj@tC|||j�|fS|tjDvr(|xjdz
c_tjF||fS|dk(r�|xjdz
c_|jd�|j|jHkrn|j
|jdk(rR|xjdz
c_tKjLdd||dz|jdz
�}	tjN|	|fSt!d|��t!d|z|��)Nr�
�
��#�(zExpected '(' before file name�)zExpected ')' after file name�\�
�@zExpected glyph class name�?z7Glyph class names must not be longer than 63 characterszOGlyph class names must consist of letters, digits, underscore, period or hyphen�include�0�xX���.�-�"z[
]�z Expected '"' to terminate stringzUnexpected character: %r)(�
scan_over_r�CHAR_WHITESPACE_r=rr r!�
StopIterationrrr�scan_until_�
CHAR_NEWLINE_rr$�MODE_FILENAME_rr#r�CHAR_DIGIT_r�int�CHAR_NAME_CONTINUATION_�
RE_GLYPHCLASS�matchr�CHAR_NAME_START_r�CHAR_HEXDIGIT_r
rr	r�float�CHAR_SYMBOL_rr"�re�subr
)
r%r:�startr&�limit�cur_char�	next_char�
glyphclassr9�strings
          r(r7zLexer.next_Ds�������.�.�/��>�>�#���	�	���z�z���D�	���E�>��/�!���;��',�q�y�5�'8�D����O�d�	��t���I�I��N�I��J�J�!�O�J�#�y�y�D���M�M�4��2�2��t���I�I�i�4�/��Q�6�I��J�J�!�O�J�#�y�y�D���M�M�4��2�2��s�?����U�0�0�1��M�M�4���	�	�#:�H�E�E��:�:��-�-�-��3��%�&E�x�P�P����S�!�*.�)�)�e�*;�t�D�I�I���H��3��%�&D�h�O�O��I�I��N�I��+�+�D�J��N�N�D����T�Y�Y��]�$C�X�N�N��t��	�U�->�->� >��I�I��N�I��O�O�E�-�-�.��I�I�s�4���	�D�I�I�#>��C�X�N�N��s�?��I�I��N�I��O�O�E�9�9�:��e�a�i�$�)�)�4�J��:���"�%�&A�8�L�L��:���#�%�M�x����&�&�,�,�Z�8�%�3����
�$�$�j�(�;�;��u�-�-�-��I�I��N�I��O�O�E�9�9�:������+�E��	�!�"�1�1��
��J�J��x�0�0��s�?�y�D�0��I�I��N�I��O�O�E�0�0�1��%�%�s�4���	�	�+B�B�'G��R�R��s�?�y�E�,=�,=�=��O�O�E�-�-�.��K�K��T�%�$�)�)�%<�a�!@�(�K�K��u�(�(�(��O�O�E�-�-�.��y�y�E�!�T�$�)�)�_��%;����c�$�u�t�y�y�*A�2�&F��Q�Q��O�O�C� ��O�O�E�-�-�.��K�K��t�E�D�I�I�'>�!?��J�J��s�?�y�E�,=�,=�=��I�I��N�I��O�O�E�-�-�.��y�y�E�!�T�$�)�)�_��%;����c�$�u�t�y�y�*A�2�&F��Q�Q��O�O�C� ��O�O�E�-�-�.��K�K��t�E�D�I�I�'>�!?��J�J��u�)�)�)��I�I��N�I��L�L�(�H�5�5��s�?��I�I��N�I����S�!��y�y�4�,�,�,����D�I�I�1F�#�1M��	�	�Q��	�����"�d�5�1�9�t�y�y�1�}�.M�N�����f�h�7�7�%�&I�8�T�T��8�8�C�X�N�Nr*c��|j}||jkr7|j||vr&|dz
}||jkr|j||vr�&||_y�Nr�rr"r )r%�valid�ps   r(rRzLexer.scan_over_�sW���I�I���$�#�#�#��
�
�1�
��(>�
��F�A��$�#�#�#��
�
�1�
��(>���	r*c��|j}||jkr7|j||vr&|dz
}||jkr|j||vr�&||_yrjrk)r%�stop_atrms   r(rUzLexer.scan_until_�sW���I�I���$�#�#�#��
�
�1�
�W�(D�
��F�A��$�#�#�#��
�
�1�
�W�(D���	r*c���|j�}|j�}|jtj�|jtj�d|zdz}t
j||j|jdd��}t|�dk7rtd|z|��|xjt|d�z
c_	tj|d|fS)Nz}\s*z\s*;r)�maxsplitrAz-Expected '} %s;' to terminate anonymous blockr)
r=�striprUrrVrRra�splitr rr!rr)r%�tagr:�regexprss     r(�scan_anonymous_blockzLexer.scan_anonymous_block�s����>�>�#���i�i�k������,�,�-�����+�+�,��3���(���������D�I�I�K�!8�1�E���u�:��?�!�?�#�E�x��
�	
�	�	�S��q��]�"�	��%�%�u�Q�x��:�:r*N)'�__name__�
__module__�__qualname__r	r
r�NUMBERSrr
rrrrrrrrrSrVr`rXr^�CHAR_LETTER_r]rZra�compiler[r#rWr)r/r4r3r=r7rRrUrvr-r*r(rr
s���
�F��K��E��{�E�*�G��E�
�F��D��H��J�
�C�
�F��G��G�'�O����M�$�L��K�-�N�I�L�#�l�2��*�[�8�<�G���B�J�J�4�5�M��L��N�(���5�V�cO�J��;r*rc�D�eZdZdZdd�d�Zd�Zd�Zd�Zed��Z	d	�Z
y)
�IncludingLexera�A Lexer that follows include statements.

    The OpenType feature file specification states that due to
    historical reasons, relative imports should be resolved in this
    order:

    1. If the source font is UFO format, then relative to the UFO's
       font directory
    2. relative to the top-level include file
    3. relative to the parent include file

    We only support 1 (via includeDir) and 2.
    N)�
includeDirc�|�|j|�g|_|jdj|_||_y)aOInitializes an IncludingLexer.

        Behavior:
            If includeDir is passed, it will be used to determine the top-level
            include directory to use for all encountered include statements. If it is
            not passed, ``os.path.dirname(featurefile)`` will be considered the
            include directory.
        rN)�make_lexer_�lexers_r�featurefilepathr)r%�featurefilers   r(r)zIncludingLexer.__init__�s6���(�(��5�6���#�|�|�A��8�8���$��r*c��|Sr,r-r.s r(r/zIncludingLexer.__iter__�r0r*c�"�|j�Sr,r2r.s r(r4zIncludingLexer.next�r5r*c��|j�rr|jd}	t|�\}}}|tj
u�r-|dk(�r'|j�\}}}|tjurtd|��tjj|�r|}n�|j�
|j}	nJ|j�*tjj|j�}	ntj�}	tjj|	|�}t!|j�dk\rtd|��	|jj#|j%|��n|||fS|jr��rt��#t$r|jj�Y���wxYw#t&$r}
t)||�|
�d}
~
wwxYw)N���rIzExpected file name�zToo many recursive includes)r�r4rT�poprrrr�os�path�isabsrr��dirname�getcwd�joinr!�appendr��FileNotFoundErrorr)r%�lexerr8r9r:�
fname_type�fname_token�fname_locationr��curpath�errs           r(r3zIncludingLexer.__next__�s����l�l��L�L��$�E�
�.2�5�k�+�
�E�8��U�Z�Z�'�E�Y�,>�:?�*�*�,�7�
�K���U�^�^�3�)�*>��O�O��7�7�=�=��-�&�D����2�"&�/�/���-�-�9�"$�'�'�/�/�$�2F�2F�"G��#%�)�)�+���7�7�<�<���=�D��t�|�|�$��)�)�*G��X�X�T��L�L�'�'��(8�(8��(>�?�#�E�8�4�4�G�l�l�H�o���A!�
���� � �"��
��8)�T�-�k�>�J�PS�S��T�s)�F
�*F4�
#F1�0F1�4	G�=
G
�
Gc��t|d�r|d}}n|d}}t|dd��}|j�}t|dd�}|r|j	�t||�S)N�readFT�rzutf-8)�encoding�name)�hasattr�openr��getattr�closer)�file_or_path�fileobj�closingr'�datas     r(r�zIncludingLexer.make_lexer_s^���<��(�+�U�W�G� ,�d�g�H��8�S�7�;�G��|�|�~���7�F�D�1����M�M�O��T�8�$�$r*c�>�|jdj|�S)Nr�)r�rv)r%rts  r(rvz#IncludingLexer.scan_anonymous_blocks���|�|�B��4�4�S�9�9r*)rwrxry�__doc__r)r/r4r3�staticmethodr�rvr-r*r(r~r~�s:���37�%���%�N�
%��
%�:r*r~c��eZdZdZd�Zy)�NonIncludingLexerzBLexer that does not follow `include` statements, emits them as-is.c�2�t|jd�S)Nr)r4r�r.s r(r3zNonIncludingLexer.__next__"s���D�L�L��O�$�$r*N)rwrxryr�r3r-r*r(r�r�s
��L�%r*r�)�fontTools.feaLib.errorrr�fontTools.feaLib.locationrrar�r�ImportError�fontTools.misc�objectrr~r�r-r*r(�<module>r�sX��G�8�	�	�&��t;�F�t;�nX:�V�X:�v%��%��o�&�%�&�s�>�A�A

Youez - 2016 - github.com/yon3zu
LinuXploit