L i4c ddlmcmZddlmZddlmZddlmZddddd d d d d d d d d Z Gdde Z Gdde Z Gdde Z y)N)Lexer) VoltLibError)openparse_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_PPEMPRESENTATION_PPEMPPOSITIONING_PPEMCOMPILER_USEEXTENSIONLOOKUPSCOMPILER_USEPAIRPOSFORMAT2 CMAP_FORMATDO_NOT_TOUCH_CMAPceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#y")#ParsercHtj|_t|_t |_i|_t |_t |_ t |_ d\|_ |_ d|_ |j||jy)NNN)astVoltFiledoc_OrderedSymbolTableglyphs_ SymbolTablegroups_anchors_scripts_langs_lookups_next_token_type_ next_token_next_token_location_ make_lexer_advance_lexer_)selfpaths ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/voltLib/parser.py__init__zParser.__init__svLLN )+ "}  #  !m #  2>/t/$(!  ct|drt|dd}|j}n'|}t|d5}|j}dddt ||_y#1swYxYw)Nreadnamer)hasattrgetattrr4rrlexer_)r. file_or_pathfilenamedatafs r0r,zParser.make_lexer_$sg < (|VT:H$$&D#HlC( Avvx D(+   s A$$A-c |jj}|j|j|jt j vr4t|t |j}|j|na|jdr |jStddjtt j z|j|j|jS)NENDz Expected z, )r statementsr)r- cur_token_ PARSE_FUNCSkeysr8appendis_cur_keyword_rjoinsortedcur_token_location_)r.r@funcs r0parsez Parser.parse.sYY)) ##/    !+"2"2"44t[%AB!!$&)%%e, yy #$))F;3C3C3E,F"GG,,##/yyr2c|jdsJ|j}|j}|jd|j }|dkrt d|jd}|j dk(r@|jd|j g}|ddkrFt d|j|j dk(r!|jd|j}d}|j dk(r'|jd|j}|d vsJd}|j d k(r!|jd |j }|jd |jj|t d ||fz|tj|||||| }|jj|||S)NrIDrzInvalid glyph IDUNICODEzInvalid glyph UNICODE UNICODEVALUESTYPE)BASELIGATUREMARK COMPONENT COMPONENTS END_GLYPHz#Glyph "%s" (gid %i) already definedlocation)rErHexpect_string_expect_keyword_expect_number_rr*parse_unicode_values_ expect_name_r"resolverGlyphDefinitiondefine)r.rWr5gidgunicodegtype components def_glyphs r0rzParser.parse_def_glyph_>s##K000++""$ T"!!# 7143K3KL L   y (   +++-.H{Q"#:DLookup "%s" already defined, lookup names are case insensitiveT PROCESS_BASE SKIP_BASEF PROCESS_MARKSMARK_GLYPH_SETALLNONEz3Expected ALL, NONE, MARK_GLYPH_SET or an ID. Got %s SKIP_MARKS DIRECTION)LTRRTLREVERSALCOMMENTSz\n EXCEPT_CONTEXT IN_CONTEXTAS_SUBSTITUTION AS_POSITIONz/Expected AS_SUBSTITUTION or AS_POSITION. Got %srV)rErHrXisalpharr(r]r*r-r)rSTRINGrYr\replaceparse_context_parse_substitution_parse_position_rLookupDefinitionr_)r.rWr5 process_base process_marksmark_glyph_set directionreversalcommentscontext as_pos_or_subsubpos def_lookups r0r zParser.parse_def_lookup_s2##L111++""$Aw ;dBH  ==  & 246:;     ~ -    !    ,    ! L     .    !#33##%!%!4!4!6!!U*##%!!V+##% % &&%,,6 $ 3 3 5 " $ 5 57    -    !!M   { *   -))+I. ..   z )   ,H   z )   ,**,44UDAH"BB))+G"BB))+  - -**84C m +&&(CD V ))             T:.r2c|j}g}|jdvrd}d}|j}|jdk7rg}g}|jdvrW|j}|j}|dk(r|j |n|j ||jdvrW|j dt j||||}|j |n|j d|jdvr|S)Nr END_CONTEXT)LEFTRIGHTrrV)rHr*r\parse_coverage_rDrYrContextDefinition) r.rWcontextssidecoverageex_or_inleftrightrs r0rzParser.parse_context_s ++"BBDH((*H=0&&*;;,,.D#335Hv~ H- X. &&*;;$$]3//dEH($$]3+"BB,r2c|jdsJ|j}g}g}|jdk7r td||jdk(r|j d|j |j |j d|j |j |j d|jdk(r|j dt|Dcgc] }t|c}}t|Dcgc] }t|c}}|dkDr|dkDr td|ttt|t|}|dk(r|dk(r|D cgc]}|D]} | j} }} tt| t| k7rtj|| } | S|rtj || } | Stj"|| } | S|dk(r|dkDrtj$|| } | S|dkDr|dk(rtj&|| }  Scc}wcc}wcc} }w) NrSUBz Expected SUBWITHEND_SUBEND_SUBSTITUTIONzInvalid substitution typerV)rErHr*rrYrDrmaxlendictziptupleglyphSetsetrSubstitutionAlternateDefinition+SubstitutionReverseChainingSingleDefinitionSubstitutionSingleDefinitionSubstitutionMultipleDefinitionSubstitutionLigatureDefinition) r.rrWsrcdestcovmax_srcmax_destmappingxglyphsrs r0rzParser.parse_substitution_,s.##$5666++   u $~x8 8%'   ' JJt++- .   ( KK,,. /   + %' /03/Cs3x/0D1SC12 Q;8a<:HE Es5:uT{34 a|j |j|}||j|k(rtd|z||jdk(rd}|jnd}|jd |j}|jd tj||||||| }||j vrt|j |<|j |j!|||S) NrONGLYPHrSz>Anchor "%s" already defined, anchor names are case insensitiveLOCKEDTFr END_ANCHORrV)rErHrXrYrZr\r%r] componentrr*r-rrAnchorDefinitionr#r_) r.rWr5r` glyph_nameranchorlockedrs r0r zParser.parse_def_anchor_s##L111++""$ T"!!# W%&&(  [)'')  &]]:.66t?   x 'F    !F T"oo \*%% #z9fcH  T]] *(3 DMM* % j!((v6 r2c|j|jdsJ|j}|jd|j}||fS)N ADJUST_BYr)r-rErZrY)r. adjustmentsizes r0parse_adjust_by_zParser.parse_adjust_by_sW ##K000((*  T"""$4r2c<|j|j}|jdsJ|d}d}d}i}i}i}|jdk(rW|j|j }|jdk(r(|j \}} ||| <|jdk(r(|jdk(rW|j|j }|jdk(r(|j \}} ||| <|jdk(r(|jdk(rW|j|j }|jdk(r(|j \}} ||| <|jdk(r(|j dtj||||||S)NPOSADVr DXDYEND_POS) r-rHrEr*rZrrYrPos) r.rWadvdxdy adv_adjust_by dx_adjust_by dy_adjust_byr r s r0rzParser.parse_pos_s ++##E*4H4*       u $    !%%'C""k1#'#8#8#: D&0 d#""k1   t #    !$$&B""k1#'#8#8#: D%/ T"""k1   t #    !$$&B""k1#'#8#8#: D%/ T"""k1 Y'wwsBM<NNr2c|j} |jjd}|Dcgc]}|dk7s t|ddd}}|gk7r|SdScc}w#t$r}t t ||d}~wwxYw)N,)rHrXsplitint ValueErrorrstr)r.rWunicode_valuesunierrs r0r[zParser.parse_unicode_values_s++ 3!00288=N:HV3CSUIc#ab'2.VNV"02!5~?4?W 3s3x2 2 3s-#A AA AA B&A;;Bc|jd|j}tj|j |}|jd|S)NrfrVEND_ENUM)rYrHrEnumr)r.rWrjs r0rhzParser.parse_enum_ sG V$++xx,,.B Z( r2c&g}|j}|jdvrj|jdk(r#|j}|j|n(|jdk(rH|j d|j }|jt j||n|jdk(rI|j d|j }|jt j|||ny|jdk(rj|j d|j }|j d|j }|jt j|||||jdvrjt|S)N)rGROUPRANGErfrfrrVr,r-r) rHr*rhrDrYrXr GlyphName GroupNameRanger)r.rrWrjr5startends r0rzParser.parse_coverage_sK++"EE6)'')%!!W,$$W-**, dX FG!!W,$$W-**, dD8 LM!!W,$$W-++-$$T*))+ %dX NO#"EE$Xr2c8|jj|SN)r$r])r. group_names r0 resolve_groupzParser.resolve_group's||##J//r2c:|jj||Sr4)r"range)r.r1r2s r0 glyph_rangezParser.glyph_range*s||!!%--r2c|j}|j}|j}tj|||}|SNrVrHrArZrSettingDefinition)r.rW ppem_namevaluesettings r0r zParser.parse_ppem_-s=++OO ##%'' 58Lr2cj|j}|j}d}tj|||}|S)NTrV)rHrArr=r.rWr5r?r@s r0r zParser.parse_noarg_option_4s4++''ehGr2c|j}|j}|j|j|jf}tj|||}|Sr;r<rBs r0r zParser.parse_cmap_format;sV++$$&(;(;(=t?R?R?TU''ehGr2c\|jtjuxr|j|k(Sr4)cur_token_type_rrmrA)r.ks r0rEzParser.is_cur_keyword_Bs%$$ 2NA9MNr2c|j|jtjurt d|j |j S)NzExpected a string)r-rErrrrHrAr.s r0rXzParser.expect_string_E>    u|| 32D4L4LM Mr2c|j|jtjur|j|k(r |jSt d|z|j )Nz Expected "%s"r-rErrmrArrH)r.keywords r0rYzParser.expect_keyword_KsM    5:: -$//W2L?? "?W4d6N6NOOr2c|j|jtjur |jSt d|j )NzExpected a namerKrHs r0r\zParser.expect_name_Qs>    5:: -?? ",d.F.FGGr2c|j|jtjurt d|j |j S)NzExpected a number)r-rErNUMBERrrHrArHs r0rZzParser.expect_number_WrIr2c2|j|j|jc|_|_|_ |j drt|jj\|_|_|_y#t$rd\|_|_YywxYw)Nr?r) r)r*r+rErArHrE StopIterationr9nextrHs r0r-zParser.advance_lexer_]s  ! !     % % Hdot/G C##E*##    "  % ) C6B 3D !4#3 CsAA;;BBN)$__name__ __module__ __qualname__r1r,rJrrrrrr|r rrrrrrrr rrr[rhrr6r9r r r rErXrYr\rZr-r2r0rrs , #J$!F$ Un6)V&$"6 !F O@@.0.O P H  Cr2rc,eZdZdZdZdZdZddZy)r#cig|_yr4scopes_rHs r0r1zSymbolTable.__init__p t r2c:|jjiyr4rZrDrHs r0rqzSymbolTable.enter_scopes Br2c8|jjyr4)rZpoprHs r0rtzSymbolTable.exit_scopevs r2c(||jd|<y)NrY)r.r5items r0r_zSymbolTable.defineys!% Rr2ct|jD]}|j|}|s|cS|r/D]*}|j|jk(s%||cSyr4)reversedrZgetlower)r.r5case_insensitivescoperckeys r0r]zSymbolTable.resolve|sfdll+ E99T?D    &99;$**,. :% &r2N)T)rSrTrUr1rqrtr_r]rVr2r0r#r#os & r2r#c&eZdZdZdZddZdZy)r!cig|_yr4rYrHs r0r1zOrderedSymbolTable.__init__r[r2c:|jjiyr4r]rHs r0rqzOrderedSymbolTable.enter_scoper^r2c4tj|||y)N)rh)r#r])r.r5rhs r0r]zOrderedSymbolTable.resolvesD$9IJr2c,t|jD]|}||vs||vs t|jj |}t|jj |}t|j||dzcSy)Nr)rerZlistrCindex)r.r1r2ri start_idxend_idxs r0r8zOrderedSymbolTable.rangesdll+ CE~#, .44U; uzz|,2237EJJL))gkBB  C r2N)F)rSrTrUr1rqr]r8rVr2r0r!r!s Kr2r!)fontTools.voltLib.astvoltLibrfontTools.voltLib.lexerrfontTools.voltLib.errorriorrBobjectrr#r!rVr2r0rzsj##)0$#%%%&&$9"7&.  V CVV Cr&2r2