Ë
    £ehTa  ã                   óš   — d dl mc mZ d dlmZ d dlmZ d dlmZ ddddd	d
d
d
dddddœZ	 G d„ de
«      Z G d„ de
«      Z G d„ de«      Zy)é    N)ÚLexer)ÚVoltLibError)ÚopenÚparse_def_glyph_Úparse_def_group_Úparse_def_script_Úparse_def_lookup_Úparse_def_anchor_Úparse_ppem_Úparse_noarg_option_Úparse_cmap_format)Ú	DEF_GLYPHÚ	DEF_GROUPÚ
DEF_SCRIPTÚ
DEF_LOOKUPÚ
DEF_ANCHORÚ	GRID_PPEMÚPRESENTATION_PPEMÚPPOSITIONING_PPEMÚCOMPILER_USEEXTENSIONLOOKUPSÚCOMPILER_USEPAIRPOSFORMAT2ÚCMAP_FORMATÚDO_NOT_TOUCH_CMAPc                   óÒ   — 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d„ 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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#y")#ÚParserc                 óH  — t        j                  «       | _        t        «       | _        t        «       | _        i | _        t        «       | _        t        «       | _	        t        «       | _
        d\  | _        | _        d | _        | j                  |«       | j                  «        y )N©NN)ÚastÚVoltFileÚdoc_ÚOrderedSymbolTableÚglyphs_ÚSymbolTableÚgroups_Úanchors_Úscripts_Úlangs_Úlookups_Únext_token_type_Únext_token_Únext_token_location_Úmake_lexer_Úadvance_lexer_)ÚselfÚpaths     úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/voltLib/parser.pyÚ__init__zParser.__init__   sv   € Ü—L‘L“NˆŒ	Ü)Ó+ˆŒÜ"“}ˆŒØˆŒÜ#›ˆŒÜ!“mˆŒÜ#›ˆŒØ2>Ñ/ˆÔ˜tÔ/Ø$(ˆÔ!Ø×Ñ˜ÔØ×ÑÕó    c                 óà   — t        |d«      rt        |dd «      }|j                  «       }n'|}t        |d«      5 }|j                  «       }d d d «       t	        |«      | _        y # 1 sw Y   ŒxY w)NÚreadÚnameÚr)ÚhasattrÚgetattrr4   r   r   Úlexer_)r.   Úfile_or_pathÚfilenameÚdataÚfs        r0   r,   zParser.make_lexer_$   sg   € Ü�< Ô(Ü˜|¨V°TÓ:ˆHØ×$Ñ$Ó&‰Dà#ˆHÜ�l CÓ(ð  ¨AØ—v‘v“x�÷ ä˜D (Ó+ˆ�÷ ð  ús   ¹A$Á$A-c           	      ó  — | j                   j                  }| j                  �Ò| j                  «        | j                  t
        j                  «       v r4t        | t
        | j                     «      }|j                   |«       «       na| j                  d«      r	 | j                   S t        ddj                  t        t
        j                  «       «      «      z   | j                  «      ‚| j                  �ŒÒ| j                   S )NÚENDz	Expected z, )r    Ú
statementsr)   r-   Ú
cur_token_ÚPARSE_FUNCSÚkeysr8   ÚappendÚis_cur_keyword_r   ÚjoinÚsortedÚcur_token_location_)r.   r@   Úfuncs      r0   ÚparsezParser.parse.   sÑ   € Ø—Y‘Y×)Ñ)ˆ
Ø×#Ñ#Ð/Ø×ÑÔ!Ø�‰¤+×"2Ñ"2Ó"4Ñ4Ü˜t¤[°·±Ñ%AÓB�Ø×!Ñ!¡$£&Õ)Ø×%Ñ% eÔ,Øð �y‰yÐô	 #Ø $§)¡)¬F´;×3CÑ3CÓ3EÓ,FÓ"GÑGØ×,Ñ,óð ð ×#Ñ#Ñ/ð �y‰yÐr2   c                 óš  — | j                  d«      sJ ‚| j                  }| j                  «       }| j                  d«       | j	                  «       }|dk  rt        d| j                  «      ‚d }| j                  dk(  r@| j                  d«       | j	                  «       g}|d   dk  rFt        d| j                  «      ‚| j                  dk(  r!| j                  d«       | j                  «       }d }| j                  dk(  r'| j                  d«       | j                  «       }|d	v sJ ‚d }| j                  d
k(  r!| j                  d
«       | j	                  «       }| j                  d«       | j                  j                  |«      �t        d||fz  |«      ‚t        j                  ||||||¬«      }| j                  j                  ||«       |S )Nr   ÚIDr   zInvalid glyph IDÚUNICODEzInvalid glyph UNICODEÚUNICODEVALUESÚTYPE)ÚBASEÚLIGATUREÚMARKÚ	COMPONENTÚ
COMPONENTSÚ	END_GLYPHz#Glyph "%s" (gid %i) already defined©Úlocation)rE   rH   Úexpect_string_Úexpect_keyword_Úexpect_number_r   r*   Úparse_unicode_values_Úexpect_name_r"   Úresolver   ÚGlyphDefinitionÚdefine)r.   rW   r5   ÚgidÚgunicodeÚgtypeÚ
componentsÚ	def_glyphs           r0   r   zParser.parse_def_glyph_>   sÇ  € Ø×#Ñ# KÔ0Ð0Ð0Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ×Ñ˜TÔ"Ø×!Ñ!Ó#ˆØ�Š7ÜÐ1°4×3KÑ3KÓLÐLØˆØ×Ñ˜yÒ(Ø× Ñ  Ô+Ø×+Ñ+Ó-Ð.ˆHØ˜‰{˜QŠÜ"Ð#:¸D×<TÑ<TÓUÐUØ×Ñ Ò0Ø× Ñ  Ô1Ø×1Ñ1Ó3ˆHØˆØ×Ñ˜vÒ%Ø× Ñ  Ô(Ø×%Ñ%Ó'ˆEØÐEÑEÐEÐEØˆ
Ø×Ñ˜|Ò+Ø× Ñ  Ô.Ø×,Ñ,Ó.ˆJØ×Ñ˜[Ô)Ø�<‰<×Ñ Ó%Ð1ÜØ5¸¸s¸ÑCÀXóð ô ×'Ñ'Ø�#�x ¨
¸Xô
ˆ	ð 	�‰×Ñ˜D )Ô,ØÐr2   c                 ó„  — | j                  d«      sJ ‚| j                  }| j                  «       }d }| j                  dk(  r| j	                  «       }| j                  d«       | j                  j                  |«      �t        d|z  |«      ‚t        j                  |||¬«      }| j                  j                  ||«       |S )Nr   ÚENUMÚ	END_GROUPzBGlyph group "%s" already defined, group names are case insensitiverV   )rE   rH   rX   r*   Úparse_enum_rY   r$   r]   r   r   ÚGroupDefinitionr_   )r.   rW   r5   ÚenumÚ	def_groups        r0   r   zParser.parse_def_group_c   sÀ   € Ø×#Ñ# KÔ0Ð0Ð0Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØˆØ×Ñ˜vÒ%Ø×#Ñ#Ó%ˆDØ×Ñ˜[Ô)Ø�<‰<×Ñ Ó%Ð1Üð3Ø59ñ:àóð ô
 ×'Ñ'¨¨d¸XÔFˆ	Ø�‰×Ñ˜D )Ô,ØÐr2   c                 óÈ  — | j                  d«      sJ ‚| j                  }d }| j                  dk(  r!| j                  d«       | j	                  «       }| j                  d«       | j	                  «       }| j
                  j                  |«      �t        d|z  |«      ‚| j                  j                  «        g }| j                  dk7  rº| j                  «        | j                  «       }| j                  d«       | j                  j                  |j                  «      �t        d|j                  ›d|›d	�|«      ‚| j                  j                  |j                  |«       |j                  |«       | j                  dk7  rŒº| j                  d«       | j                  j                  «        t!        j"                  ||||¬
«      }| j
                  j                  ||«       |S )Nr   ÚNAMEÚTAGz=Script "%s" already defined, script tags are case insensitiveÚ
END_SCRIPTÚEND_LANGSYSz
Language "z" already defined in script "z%", language tags are case insensitiverV   )rE   rH   r*   rY   rX   r&   r]   r   r'   Úenter_scoper-   Úparse_langsys_Útagr_   rD   Ú
exit_scoper   ÚScriptDefinition)r.   rW   r5   rs   ÚlangsÚlangÚ
def_scripts          r0   r   zParser.parse_def_script_u   s©  € Ø×#Ñ# LÔ1Ð1Ð1Ø×+Ñ+ˆØˆØ×Ñ˜vÒ%Ø× Ñ  Ô(Ø×&Ñ&Ó(ˆDØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØ�=‰=× Ñ  Ó%Ð1Üð3Ø58ñ9àóð ð
 	�‰×ÑÔ!ØˆØ×Ñ ,Ò.Ø×ÑÔ!Ø×&Ñ&Ó(ˆDØ× Ñ  Ô/Ø�{‰{×"Ñ" 4§8¡8Ó,Ð8Ý"à<@¿H»HÂcðKàóð ð
 �K‰K×Ñ˜tŸx™x¨Ô.Ø�L‰L˜Ôð ×Ñ ,Ó.ð 	×Ñ˜\Ô*Ø�‰×ÑÔ Ü×)Ñ)¨$°°UÀXÔNˆ
Ø�‰×Ñ˜S *Ô-ØÐr2   c                 óâ  — | j                  d«      sJ ‚| j                  }d }| j                  dk(  r!| j                  d«       | j	                  «       }| j                  d«       | j	                  «       }g }| j                  dk7  rR| j                  «        | j                  «       }| j                  d«       |j                  |«       | j                  dk7  rŒRt        j                  ||||¬«      }|S )NÚDEF_LANGSYSrm   rn   rp   ÚEND_FEATURErV   )
rE   rH   r*   rY   rX   r-   Úparse_feature_rD   r   ÚLangSysDefinition)r.   rW   r5   rs   ÚfeaturesÚfeatureÚdef_langsyss          r0   rr   zParser.parse_langsys_˜   sá   € Ø×#Ñ# MÔ2Ð2Ð2Ø×+Ñ+ˆØˆØ×Ñ˜vÒ%Ø× Ñ  Ô(Ø×&Ñ&Ó(ˆDØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØˆØ×Ñ -Ò/Ø×ÑÔ!Ø×)Ñ)Ó+ˆGØ× Ñ  Ô/Ø�O‰O˜GÔ$ð	 ×Ñ -Ó/ô
 ×+Ñ+¨D°#°xÈ(ÔSˆØÐr2   c                 ó   — | j                  d«      sJ ‚| j                  }| j                  d«       | j                  «       }| j                  d«       | j                  «       }g }| j                  dk7  rB| j                  d«       | j                  «       }|j                  |«       | j                  dk7  rŒBt        j                  ||||¬«      }|S )NÚDEF_FEATURErm   rn   r{   ÚLOOKUPrV   )rE   rH   rY   rX   r*   rD   r   ÚFeatureDefinition)r.   rW   r5   rs   ÚlookupsÚlookupr   s          r0   r|   zParser.parse_feature_ª   sÁ   € Ø×#Ñ# MÔ2Ð2Ð2Ø×+Ñ+ˆØ×Ñ˜VÔ$Ø×"Ñ"Ó$ˆØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØˆØ×Ñ -Ò/à× Ñ  Ô*Ø×(Ñ(Ó*ˆFØ�N‰N˜6Ô"ð	 ×Ñ -Ó/ô
 ×'Ñ'¨¨c°7ÀXÔNˆØˆr2   c                 ó.  — | j                  d«      sJ ‚| j                  }| j                  «       }|d   j                  «       st	        d|z  |«      ‚| j
                  j                  |«      �t	        d|z  |«      ‚d}| j                  dk(  r| j                  «        n!| j                  dk(  r| j                  «        d}d}d }| j                  d	k(  rÉ| j                  «        | j                  d
k(  r!| j                  «        | j                  «       }nª| j                  dk(  r| j                  «        nŠ| j                  dk(  r| j                  «        d}nh| j                  t        j                  k(  r| j                  «       }n:t	        d| j                  z  |«      ‚| j                  dk(  r| j                  «        d}d }| j                  dk(  r'| j                  d«       | j                  «       }|dv sJ ‚d }| j                  dk(  r| j                  d«       d}d }| j                  dk(  r1| j                  d«       | j                  «       j                  dd«      }g }	| j                  dv r| j                  «       }	| j                  dv rŒ| j                  «       }
d }d }|
dk(  r| j!                  |«      }n%|
dk(  r| j#                  «       }nt	        d|
z  |«      ‚t%        j&                  ||||||||	|||¬«      }| j
                  j)                  ||«       |S )Nr   r   z)Lookup name "%s" must start with a letterz>Lookup "%s" already defined, lookup names are case insensitiveTÚPROCESS_BASEÚ	SKIP_BASEFÚPROCESS_MARKSÚMARK_GLYPH_SETÚALLÚNONEz3Expected ALL, NONE, MARK_GLYPH_SET or an ID. Got %sÚ
SKIP_MARKSÚ	DIRECTION)ÚLTRÚRTLÚREVERSALÚCOMMENTSz\nú
©ÚEXCEPT_CONTEXTÚ
IN_CONTEXTÚAS_SUBSTITUTIONÚAS_POSITIONz/Expected AS_SUBSTITUTION or AS_POSITION. Got %srV   )rE   rH   rX   Úisalphar   r(   r]   r*   r-   r)   r   ÚSTRINGrY   r\   ÚreplaceÚparse_context_Úparse_substitution_Úparse_position_r   ÚLookupDefinitionr_   )r.   rW   r5   Úprocess_baseÚprocess_marksÚmark_glyph_setÚ	directionÚreversalÚcommentsÚcontextÚas_pos_or_subÚsubÚposÚ
def_lookups                 r0   r	   zParser.parse_def_lookup_º   s2  € Ø×#Ñ# LÔ1Ð1Ð1Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ�A‰w�‰Ô ÜØ;¸dÑBÀHóð ð �=‰=× Ñ  Ó&Ð2Üð4Ø6:ñ;àóð ð
 ˆØ×Ñ˜~Ò-Ø×ÑÕ!Ø×Ñ Ò,Ø×ÑÔ!Ø ˆLØˆØˆØ×Ñ˜Ò.Ø×ÑÔ!Ø×ÑÐ#3Ò3Ø×#Ñ#Ô%Ø!%×!4Ñ!4Ó!6‘Ø×!Ñ! UÒ*Ø×#Ñ#Õ%Ø×!Ñ! VÒ+Ø×#Ñ#Ô%Ø %‘Ø×&Ñ&¬%¯,©,Ò6Ø $× 3Ñ 3Ó 5‘ä"ðØ $× 5Ñ 5ñ7àóð ð
 ×Ñ Ò-Ø×ÑÔ!Ø!ˆMØˆ	Ø×Ñ˜{Ò*Ø× Ñ  Ô-Ø×)Ñ)Ó+ˆIØ Ñ.Ð.Ð.ØˆØ×Ñ˜zÒ)Ø× Ñ  Ô,ØˆHØˆØ×Ñ˜zÒ)Ø× Ñ  Ô,Ø×*Ñ*Ó,×4Ñ4°U¸DÓAˆHØˆØ×ÑÐ"BÑBØ×)Ñ)Ó+ˆGð ×ÑÐ"BÒBà×)Ñ)Ó+ˆØˆØˆØÐ-Ò-Ø×*Ñ*¨8Ó4‰CØ˜mÒ+Ø×&Ñ&Ó(‰CäØDÈÑVØóð ô ×)Ñ)ØØØØØØØØØØØô
ˆ
ð 	�‰×Ñ˜T :Ô.ØÐr2   c                 ó  — | j                   }g }| j                  dv rèd }d }| j                  «       }| j                  dk7  r¥g }g }| j                  dv rW| j                  «       }| j                  «       }|dk(  r|j	                  |«       n|j	                  |«       | j                  dv rŒW| j                  d«       t        j                  ||||¬«      }|j	                  |«       n| j                  d«       | j                  dv rŒè|S )Nr•   ÚEND_CONTEXT)ÚLEFTÚRIGHTr®   rV   )rH   r*   r\   Úparse_coverage_rD   rY   r   ÚContextDefinition)	r.   rW   ÚcontextsÚsideÚcoverageÚex_or_inÚleftÚrightr§   s	            r0   r�   zParser.parse_context_  s	  € Ø×+Ñ+ˆØˆØ×ÑÐ"BÑBØˆDØˆHØ×(Ñ(Ó*ˆHà×Ñ =Ò0Ø�Ø�Ø×&Ñ&Ð*;Ñ;Ø×,Ñ,Ó.�DØ#×3Ñ3Ó5�HØ˜v’~ØŸ™ HÕ-àŸ™ XÔ.ð ×&Ñ&Ð*;Ò;ð ×$Ñ$ ]Ô3Ü×/Ñ/Ø˜d E°Hô�ð —‘ Õ(à×$Ñ$ ]Ô3ð+ ×ÑÐ"BÒBð, ˆr2   c                 óö  — | j                  d«      sJ ‚| j                  }g }g }| j                  dk7  rt        d|«      ‚| j                  dk(  r�| j	                  d«       |j                  | j                  «       «       | j	                  d«       |j                  | j                  «       «       | j	                  d«       | j                  dk(  rŒ�| j	                  d«       t        |D �cg c]  }t        |«      ‘Œ c}«      }t        |D �cg c]  }t        |«      ‘Œ c}«      }|dkD  r|dkD  s|r|dkD  s|dkD  rt        d|«      ‚t        t        t        |«      t        |«      «      «      }|dk(  r9|dk(  r4|rt        j                  ||¬	«      }	|	S t        j                  ||¬	«      }	|	S |dk(  r|dkD  rt        j                  ||¬	«      }	|	S |dkD  r|dk(  rt        j                   ||¬	«      }		S c c}w c c}w )
Nr˜   ÚSUBzExpected SUBÚWITHÚEND_SUBÚEND_SUBSTITUTIONé   zInvalid substitution typerV   )rE   rH   r*   r   rY   rD   r°   ÚmaxÚlenÚdictÚzipÚtupler   Ú+SubstitutionReverseChainingSingleDefinitionÚSubstitutionSingleDefinitionÚSubstitutionMultipleDefinitionÚSubstitutionLigatureDefinition)
r.   r¥   rW   ÚsrcÚdestÚcovÚmax_srcÚmax_destÚmappingr©   s
             r0   rž   zParser.parse_substitution_,  sÜ  € Ø×#Ñ#Ð$5Ô6Ð6Ð6Ø×+Ñ+ˆØˆØˆØ×Ñ˜uÒ$Ü˜~¨xÓ8Ð8Ø×Ñ %Ò'Ø× Ñ  Ô'Ø�J‰J�t×+Ñ+Ó-Ô.Ø× Ñ  Ô(Ø�K‰K˜×,Ñ,Ó.Ô/Ø× Ñ  Ô+ð ×Ñ %Ó'ð 	×ÑÐ/Ô0Ü¨3Ö/ C”s˜3•xÒ/Ó0ˆÜ¨DÖ1 Sœ˜C�Ò1Ó2ˆà�aŠK˜H qšLÙ˜' Aš+¨°AªäÐ:¸HÓEÐEÜ”sœ5 ›:¤u¨T£{Ó3Ó4ˆØ�aŠ<˜H¨šMÙÜ×EÑEØ hô�ð ˆ
ô ×6Ñ6°wÈÔR�ð
 ˆ
ð	 ˜Š\˜h¨šlÜ×4Ñ4°WÀxÔPˆCð ˆ
ð �qŠ[˜X¨š]Ü×4Ñ4°WÀxÔPˆCØˆ
ùò' 0ùÚ1s   Ã)G1ÄG6c                 óT  — | j                  d«      sJ ‚| j                  }| j                  «       }|dvrt        d|«      ‚|dk(  r| j	                  «       }nA|dk(  r| j                  «       }n+|dk(  r| j                  «       }n|dk(  r| j                  «       }| j                  d«       S )	Nr™   )ÚATTACHÚATTACH_CURSIVEÚADJUST_PAIRÚADJUST_SINGLEz;Expected ATTACH, ATTACH_CURSIVE, ADJUST_PAIR, ADJUST_SINGLErÎ   rÏ   rÐ   rÑ   ÚEND_POSITION)	rE   rH   r\   r   Úparse_attach_Úparse_attach_cursive_Úparse_adjust_pair_Úparse_adjust_single_rY   )r.   rW   Úpos_typeÚpositions       r0   rŸ   zParser.parse_position_O  s¸   € Ø×#Ñ# MÔ2Ð2Ð2Ø×+Ñ+ˆØ×$Ñ$Ó&ˆØÐWÑWÜØMÈxóð ð �xÒØ×)Ñ)Ó+‰HØÐ)Ò)Ø×1Ñ1Ó3‰HØ˜Ò&Ø×.Ñ.Ó0‰HØ˜Ò(Ø×0Ñ0Ó2ˆHØ×Ñ˜^Ô,Øˆr2   c                 óÄ  — | j                  d«      sJ ‚| j                  }| j                  «       }g }| j                  d«       | j                  dk7  re| j                  «       }| j                  d«       | j                  d«       | j                  «       }|j                  ||f«       | j                  dk7  rŒe| j                  d«       t        j                  |||¬«      }|S )NrÎ   ÚTOÚ
END_ATTACHÚATÚANCHORrV   )	rE   rH   r°   rY   r*   rX   rD   r   ÚPositionAttachDefinition)r.   rW   r´   Úcoverage_torÉ   Úanchor_namerØ   s          r0   rÓ   zParser.parse_attach_b  sÙ   € Ø×#Ñ# HÔ-Ð-Ð-Ø×+Ñ+ˆØ×'Ñ'Ó)ˆØˆØ×Ñ˜TÔ"Ø×Ñ ,Ò.Ø×&Ñ&Ó(ˆCØ× Ñ  Ô&Ø× Ñ  Ô*Ø×-Ñ-Ó/ˆKØ×Ñ  [Ð1Ô2ð ×Ñ ,Ó.ð 	×Ñ˜\Ô*Ü×/Ñ/Ø�k¨Hô
ˆð ˆr2   c                 óÚ  — | j                  d«      sJ ‚| j                  }g }g }| j                  dk7  r@| j                  d«       |j	                  | j                  «       «       | j                  dk7  rŒ@| j                  dk7  r@| j                  d«       |j	                  | j                  «       «       | j                  dk7  rŒ@| j                  d«       t        j                  |||¬«      }|S )NrÏ   ÚENTERÚEXITrÛ   rV   )rE   rH   r*   rY   rD   r°   r   ÚPositionAttachCursiveDefinition)r.   rW   Úcoverages_exitÚcoverages_enterrØ   s        r0   rÔ   zParser.parse_attach_cursive_t  sâ   € Ø×#Ñ#Ð$4Ô5Ð5Ð5Ø×+Ñ+ˆØˆØˆØ×Ñ 'Ò)Ø× Ñ  Ô(Ø×!Ñ! $×"6Ñ"6Ó"8Ô9ð ×Ñ 'Ó)ð ×Ñ ,Ò.Ø× Ñ  Ô)Ø×"Ñ" 4×#7Ñ#7Ó#9Ô:ð ×Ñ ,Ó.ð 	×Ñ˜\Ô*Ü×6Ñ6Ø˜O°hô
ˆð ˆr2   c                 óÖ  — | j                  d«      sJ ‚| j                  }g }g }i }| j                  dk(  rA| j                  «        | j	                  «       }|j                  |«       | j                  dk(  rŒA| j                  dk(  rA| j                  «        | j	                  «       }|j                  |«       | j                  dk(  rŒA| j                  dk7  rj| j                  «       }| j                  «       }| j                  d«       | j                  «       }	| j                  «       }
|	|
f|||f<   | j                  dk7  rŒj| j                  d«       t        j                  ||||¬«      }|S )NrÐ   ÚFIRSTÚSECONDÚ
END_ADJUSTÚBYrV   )rE   rH   r*   r-   r°   rD   rZ   rY   Ú
parse_pos_r   ÚPositionAdjustPairDefinition)r.   rW   Úcoverages_1Úcoverages_2Úadjust_pairÚ
coverage_1Ú
coverage_2Úid_1Úid_2Úpos_1Úpos_2rØ   s               r0   rÕ   zParser.parse_adjust_pair_…  sb  € Ø×#Ñ# MÔ2Ð2Ð2Ø×+Ñ+ˆØˆØˆØˆØ×Ñ 'Ò)Ø×ÑÔ!Ø×-Ñ-Ó/ˆJØ×Ñ˜zÔ*ð ×Ñ 'Ó)ð ×Ñ (Ò*Ø×ÑÔ!Ø×-Ñ-Ó/ˆJØ×Ñ˜zÔ*ð ×Ñ (Ó*ð ×Ñ ,Ò.Ø×&Ñ&Ó(ˆDØ×&Ñ&Ó(ˆDØ× Ñ  Ô&Ø—O‘OÓ%ˆEØ—O‘OÓ%ˆEØ).°¨ˆK˜˜t˜Ñ%ð ×Ñ ,Ó.ð 	×Ñ˜\Ô*Ü×3Ñ3Ø˜ k¸Hô
ˆð ˆr2   c                 ó^  — | j                  d«      sJ ‚| j                  }g }| j                  dk7  rT| j                  «       }| j	                  d«       | j                  «       }|j                  ||f«       | j                  dk7  rŒT| j	                  d«       t        j                  ||¬«      }|S )NrÑ   rê   rë   rV   )	rE   rH   r*   r°   rY   rì   rD   r   ÚPositionAdjustSingleDefinition)r.   rW   Úadjust_singleÚ	coveragesrª   rØ   s         r0   rÖ   zParser.parse_adjust_single_   s¦   € Ø×#Ñ# OÔ4Ð4Ð4Ø×+Ñ+ˆØˆØ×Ñ ,Ò.Ø×,Ñ,Ó.ˆIØ× Ñ  Ô&Ø—/‘/Ó#ˆCØ× Ñ  )¨SÐ!1Ô2ð	 ×Ñ ,Ó.ð
 	×Ñ˜\Ô*Ü×5Ñ5°mÈhÔWˆØˆr2   c           	      ó.  — | j                  d«      sJ ‚| j                  }| j                  «       }| j                  d«       | j	                  «       }| j                  d«       | j                  «       }| j                  d«       | j	                  «       }|| j                  v r>| j                  |   j                  |«      }|�|j                  |k(  rt        d|z  |«      ‚| j                  dk(  rd}| j                  «        nd}| j                  d	«       | j                  «       }| j                  d
«       t        j                  |||||||¬«      }|| j                  vrt        «       | j                  |<   | j                  |   j!                  ||«       |S )Nr   ÚONÚGLYPHrS   z>Anchor "%s" already defined, anchor names are case insensitiveÚLOCKEDTFrÜ   Ú
END_ANCHORrV   )rE   rH   rX   rY   rZ   r\   r%   r]   Ú	componentr   r*   r-   rì   r   ÚAnchorDefinitionr#   r_   )	r.   rW   r5   r`   Ú
glyph_namer   ÚanchorÚlockedrª   s	            r0   r
   zParser.parse_def_anchor_­  s�  € Ø×#Ñ# LÔ1Ð1Ð1Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ×Ñ˜TÔ"Ø×!Ñ!Ó#ˆØ×Ñ˜WÔ%Ø×&Ñ&Ó(ˆ
Ø×Ñ˜[Ô)Ø×'Ñ'Ó)ˆ	à˜Ÿ™Ñ&Ø—]‘] :Ñ.×6Ñ6°tÓ<ˆFØÐ! f×&6Ñ&6¸)Ò&CÜ"ð8Ø:>ñ?àóð ð
 ×Ñ˜xÒ'ØˆFØ×ÑÕ!àˆFØ×Ñ˜TÔ"Ø�o‰oÓˆØ×Ñ˜\Ô*Ü×%Ñ%Ø�#�z 9¨f°cÀHô
ˆð ˜TŸ]™]Ñ*Ü(3«ˆD�M‰M˜*Ñ%Ø�‰�jÑ!×(Ñ(¨¨vÔ6Øˆr2   c                 ó²   — | j                  «        | j                  d«      sJ ‚| j                  «       }| j                  d«       | j                  «       }||fS )NÚ	ADJUST_BYrÜ   )r-   rE   rZ   rY   )r.   Ú
adjustmentÚsizes      r0   Úparse_adjust_by_zParser.parse_adjust_by_Ð  sW   € Ø×ÑÔØ×#Ñ# KÔ0Ð0Ð0Ø×(Ñ(Ó*ˆ
Ø×Ñ˜TÔ"Ø×"Ñ"Ó$ˆØ˜4ÐÐr2   c                 ó<  — | j                  «        | j                  }| j                  d«      sJ |«       ‚d }d }d }i }i }i }| j                  dk(  rW| j                  «        | j	                  «       }| j                  dk(  r(| j                  «       \  }}	|||	<   | j                  dk(  rŒ(| j                  dk(  rW| j                  «        | j	                  «       }| j                  dk(  r(| j                  «       \  }}	|||	<   | j                  dk(  rŒ(| j                  dk(  rW| j                  «        | j	                  «       }| j                  dk(  r(| j                  «       \  }}	|||	<   | j                  dk(  rŒ(| j                  d«       t        j                  ||||||«      S )NÚPOSÚADVr  ÚDXÚDYÚEND_POS)	r-   rH   rE   r*   rZ   r	  rY   r   ÚPos)
r.   rW   ÚadvÚdxÚdyÚadv_adjust_byÚdx_adjust_byÚdy_adjust_byr  r  s
             r0   rì   zParser.parse_pos_Ø  s¦  € à×ÑÔØ×+Ñ+ˆØ×#Ñ# EÔ*Ð4¨HÓ4Ð*ØˆØˆØˆØˆØˆØˆØ×Ñ˜uÒ$Ø×ÑÔ!Ø×%Ñ%Ó'ˆCØ×"Ñ" kÒ1Ø#'×#8Ñ#8Ó#:Ñ �
˜DØ&0�˜dÑ#ð ×"Ñ" kÓ1ð ×Ñ˜tÒ#Ø×ÑÔ!Ø×$Ñ$Ó&ˆBØ×"Ñ" kÒ1Ø#'×#8Ñ#8Ó#:Ñ �
˜DØ%/�˜TÑ"ð ×"Ñ" kÓ1ð ×Ñ˜tÒ#Ø×ÑÔ!Ø×$Ñ$Ó&ˆBØ×"Ñ" kÒ1Ø#'×#8Ñ#8Ó#:Ñ �
˜DØ%/�˜TÑ"ð ×"Ñ" kÓ1ð 	×Ñ˜YÔ'Ü�w‰w�s˜B  M°<ÀÓNÐNr2   c                 ó  — | j                   }	 | j                  «       j                  d«      }|D �cg c]  }|dk7  sŒ	t        |dd  d«      ‘Œ }}|g k7  r|S d S c c}w # t        $ r}t        t        |«      |«      ‚d }~ww xY w)Nú,Ú é   é   )rH   rX   ÚsplitÚintÚ
ValueErrorr   Ústr)r.   rW   Úunicode_valuesÚuniÚerrs        r0   r[   zParser.parse_unicode_values_ø  s�   € Ø×+Ñ+ˆð	3Ø!×0Ñ0Ó2×8Ñ8¸Ó=ˆNØ:HÖV°3ÈCÐSUËIœc # a b '¨2Õ.ÐVˆNÐVð "0°2Ò!5ˆ~Ð?¸4Ð?ùò WøÜò 	3Üœs 3›x¨Ó2Ð2ûð	3ús-   Ž#A ±
A¼AÁA ÁA Á	B Á&A;Á;B c                 ó¬   — | j                  d«       | j                  }t        j                  | j	                  «       |¬«      }| j                  d«       |S )Nrf   rV   ÚEND_ENUM)rY   rH   r   ÚEnumr°   )r.   rW   rj   s      r0   rh   zParser.parse_enum_  sG   € Ø×Ñ˜VÔ$Ø×+Ñ+ˆÜ�x‰x˜×,Ñ,Ó.¸ÔBˆØ×Ñ˜ZÔ(Øˆr2   c                 ó&  — g }| j                   }| j                  dv �rj| j                  dk(  r#| j                  «       }|j                  |«       �n(| j                  dk(  rH| j	                  d«       | j                  «       }|j                  t        j                  ||¬«      «       nÑ| j                  dk(  rI| j	                  d«       | j                  «       }|j                  t        j                  || |¬«      «       ny| j                  dk(  rj| j	                  d«       | j                  «       }| j	                  d«       | j                  «       }|j                  t        j                  ||| |¬«      «       | j                  dv r�Œjt        |«      S )N)rý   ÚGROUPÚRANGErf   rf   rý   rV   r'  r(  rÚ   )rH   r*   rh   rD   rY   rX   r   Ú	GlyphNameÚ	GroupNameÚRangerÂ   )r.   r´   rW   rj   r5   ÚstartÚends          r0   r°   zParser.parse_coverage_  sK  € ØˆØ×+Ñ+ˆØ×ÑÐ"EÒEØ×Ñ 6Ò)Ø×'Ñ'Ó)�Ø—‘ Ö%Ø×!Ñ! WÒ,Ø×$Ñ$ WÔ-Ø×*Ñ*Ó,�Ø—‘¤§¡¨d¸XÔ FÕGØ×!Ñ! WÒ,Ø×$Ñ$ WÔ-Ø×*Ñ*Ó,�Ø—‘¤§¡¨d°DÀ8Ô LÕMØ×!Ñ! WÒ,Ø×$Ñ$ WÔ-Ø×+Ñ+Ó-�Ø×$Ñ$ TÔ*Ø×)Ñ)Ó+�Ø—‘¤§	¡	¨%°°dÀXÔ NÔOð# ×ÑÐ"EÓEô$ �X‹Ðr2   c                 ó8   — | j                   j                  |«      S ©N)r$   r]   )r.   Ú
group_names     r0   Úresolve_groupzParser.resolve_group  s   € Ø�|‰|×#Ñ# JÓ/Ð/r2   c                 ó:   — | j                   j                  ||«      S r/  )r"   Úrange)r.   r,  r-  s      r0   Úglyph_rangezParser.glyph_range"  s   € Ø�|‰|×!Ñ! %¨Ó-Ð-r2   c                 ó†   — | j                   }| j                  }| j                  «       }t        j                  |||¬«      }|S ©NrV   ©rH   rA   rZ   r   ÚSettingDefinition)r.   rW   Ú	ppem_nameÚvalueÚsettings        r0   r   zParser.parse_ppem_%  s=   € Ø×+Ñ+ˆØ—O‘Oˆ	Ø×#Ñ#Ó%ˆÜ×'Ñ'¨	°5À8ÔLˆØˆr2   c                 ój   — | j                   }| j                  }d}t        j                  |||¬«      }|S )NTrV   )rH   rA   r   r8  ©r.   rW   r5   r:  r;  s        r0   r   zParser.parse_noarg_option_,  s4   € Ø×+Ñ+ˆØ�‰ˆØˆÜ×'Ñ'¨¨e¸hÔGˆØˆr2   c                 óÄ   — | j                   }| j                  }| j                  «       | j                  «       | j                  «       f}t        j                  |||¬«      }|S r6  r7  r=  s        r0   r   zParser.parse_cmap_format3  sV   € Ø×+Ñ+ˆØ�‰ˆØ×$Ñ$Ó&¨×(;Ñ(;Ó(=¸t×?RÑ?RÓ?TÐUˆÜ×'Ñ'¨¨e¸hÔGˆØˆr2   c                 ó\   — | j                   t        j                  u xr | j                  |k(  S r/  )Úcur_token_type_r   rm   rA   )r.   Úks     r0   rE   zParser.is_cur_keyword_:  s%   € Ø×$Ñ$¬¯
©
Ð2ÒN¸¿¹ÈAÑ9MÐNr2   c                 óž   — | j                  «        | j                  t        j                  urt	        d| j
                  «      ‚| j                  S )NzExpected a string)r-   r@  r   r›   r   rH   rA   ©r.   s    r0   rX   zParser.expect_string_=  ó>   € Ø×ÑÔØ×Ñ¤u§|¡|Ñ3ÜÐ2°D×4LÑ4LÓMÐMØ�‰Ðr2   c                 óÂ   — | j                  «        | j                  t        j                  u r| j                  |k(  r| j                  S t        d|z  | j                  «      ‚)NzExpected "%s"©r-   r@  r   rm   rA   r   rH   )r.   Úkeywords     r0   rY   zParser.expect_keyword_C  sM   € Ø×ÑÔØ×Ñ¤5§:¡:Ñ-°$·/±/ÀWÒ2LØ—?‘?Ð"Ü˜?¨WÑ4°d×6NÑ6NÓOÐOr2   c                 óž   — | j                  «        | j                  t        j                  u r| j                  S t        d| j                  «      ‚)NzExpected a namerF  rC  s    r0   r\   zParser.expect_name_I  s>   € Ø×ÑÔØ×Ñ¤5§:¡:Ñ-Ø—?‘?Ð"ÜÐ,¨d×.FÑ.FÓGÐGr2   c                 óž   — | j                  «        | j                  t        j                  urt	        d| j
                  «      ‚| j                  S )NzExpected a number)r-   r@  r   ÚNUMBERr   rH   rA   rC  s    r0   rZ   zParser.expect_number_O  rD  r2   c                 ó2  — | j                   | j                  | j                  c| _        | _        | _        	 | j                  d«      rt        ‚| j                  j                  «       \  | _         | _        | _        y # t        $ r d\  | _         | _        Y y w xY w)Nr?   r   )
r)   r*   r+   r@  rA   rH   rE   ÚStopIterationr9   ÚnextrC  s    r0   r-   zParser.advance_lexer_U  s•   € à×!Ñ!Ø×ÑØ×%Ñ%ð 	HˆÔ˜dœo¨tÔ/Gð
		CØ×#Ñ# EÔ*Ü#Ð#ð
 —‘× Ñ Ó"ñ	ØÔ%ØÔ ØÕ)øäò 	CØ6BÑ3ˆDÔ! 4Ö#3ð	Cús   ¶AA; Á;BÂBN)$Ú__name__Ú
__module__Ú__qualname__r1   r,   rJ   r   r   r   rr   r|   r	   r�   rž   rŸ   rÓ   rÔ   rÕ   rÖ   r
   r	  rì   r[   rh   r°   r1  r4  r   r   r   rE   rX   rY   r\   rZ   r-   © r2   r0   r   r      s´   „ òò,òò #òJò$!òFò$ò Uònò6!òFò&ò$ò"ò6ò!òF òOò@@òòò.0ò.òòòòOòòPòHòóCr2   r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zy)r#   c                 ó   — i g| _         y r/  ©Úscopes_rC  s    r0   r1   zSymbolTable.__init__h  ó   € Ø�tˆ�r2   c                 ó:   — | j                   j                  i «       y r/  ©rU  rD   rC  s    r0   rq   zSymbolTable.enter_scopek  ó   € Ø�‰×Ñ˜BÕr2   c                 ó8   — | j                   j                  «        y r/  )rU  ÚpoprC  s    r0   rt   zSymbolTable.exit_scopen  s   € Ø�‰×ÑÕr2   c                 ó(   — || j                   d   |<   y )NéÿÿÿÿrT  )r.   r5   Úitems      r0   r_   zSymbolTable.defineq  s   € Ø!%ˆ�‰�RÑ˜Òr2   c                 óÈ   — t        | j                  «      D ]  }|j                  |«      }|sŒ|c S  |r/D ]*  }|j                  «       |j                  «       k(  sŒ%||   c S  y r/  )ÚreversedrU  ÚgetÚlower)r.   r5   Úcase_insensitiveÚscoper^  Úkeys         r0   r]   zSymbolTable.resolvet  sf   € Ü˜dŸl™lÓ+ò 	ˆEØ—9‘9˜T“?ˆDÚØ’ð	ñ Øò &�Ø—9‘9“; $§*¡*£,Ó.Ø  ™:Ò%ð&ð r2   N)T)rN  rO  rP  r1   rq   rt   r_   r]   rQ  r2   r0   r#   r#   g  s   „ òò òò&ô	r2   r#   c                   ó&   — e Zd Zd„ Zd„ Zdd„Zd„ Zy)r!   c                 ó   — i g| _         y r/  rT  rC  s    r0   r1   zOrderedSymbolTable.__init__�  rV  r2   c                 ó:   — | j                   j                  i «       y r/  rX  rC  s    r0   rq   zOrderedSymbolTable.enter_scope„  rY  r2   c                 ó4   — t         j                  | ||¬«       y )N)rc  )r#   r]   )r.   r5   rc  s      r0   r]   zOrderedSymbolTable.resolve‡  s   € Ü×Ñ˜D $Ð9IÐÕJr2   c                 ó,  — t        | j                  «      D ]|  }||v sŒ||v sŒt        |j                  «       «      j	                  |«      }t        |j                  «       «      j	                  |«      }t        |j                  «       «      ||dz    c S  y )Nr½   )r`  rU  ÚlistrC   Úindex)r.   r,  r-  rd  Ú	start_idxÚend_idxs         r0   r3  zOrderedSymbolTable.rangeŠ  s€   € Ü˜dŸl™lÓ+ò 	CˆEØ˜Š~ #¨¢,Ü  §¡£Ó.×4Ñ4°UÓ;�	Ü˜uŸz™z›|Ó,×2Ñ2°3Ó7�Ü˜EŸJ™J›LÓ)¨)°gÀ±kÐBÒBð		Cð
 r2   N)F)rN  rO  rP  r1   rq   r]   r3  rQ  r2   r0   r!   r!   €  s   „ òò óKór2   r!   )ÚfontTools.voltLib.astÚvoltLibr   ÚfontTools.voltLib.lexerr   ÚfontTools.voltLib.errorr   Úior   rB   Úobjectr   r#   r!   rQ  r2   r0   ú<module>ru     sj   ðß #Ð #Ý )Ý 0Ý ð $Ø#Ø%Ø%Ø%ØØ&Ø&Ø$9Ø"7Ø&Ø.ñ€ô N	CˆVô N	Côb�&ô ô2˜õ r2   