o
    ä›eÁV  ã                   @   sB  d dl mZ ddlZd dl mZ d dlmZ d dlT dddd	œZddddd
œZddddd
œZ	G dd„ de
ƒZejZejZejZejZejZej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*Z0d+Z1G d,d-„ d-ej2ƒZ3g d.¢Z4d/d0„ Z5e 6e5ƒ ¡Z7dS )1é   )Úantlré    N)ÚUtils)Úupack1)Ú*é    é@   )ÚRÚVÚA)r	   r
   r   ÚDc                   @   s   e Zd ZdZdS )ÚFormulaParseExceptionzP
   An exception indicating that a Formula could not be successfully parsed.
   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úJ/var/www/html/venv/lib/python3.10/site-packages/xlwt/ExcelFormulaParser.pyr      s    r   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é!   é"   é#   c                   @   sl   e Zd 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d„ Zdd„ Zdd„ Zdd„ ZdS )ÚParserc                 O   s6   t jj| g|¢R i |¤Ž t| _d| _g | _g | _d S )Nó    )r   Ú	LLkParserÚ__init__Ú_tokenNamesÚ
tokenNamesÚrpnÚsheet_referencesÚxcall_references)ÚselfÚargsÚkwargsr   r   r   r6   E   s
   
zParser.__init__c                 C   s   	 |   d¡ d S )Nr
   )Úexpr)r<   r   r   r   ÚformulaN   s   zParser.formulac                 C   s^  	 |   |¡ 	 |  d¡tkr¬|  d¡tkr¬	 |  d¡}	 |r0|tfv r0	 |  t¡ t dt¡}no|rD|tfv rD	 |  t¡ t dt	¡}n[|rX|t
fv rX	 |  t
¡ t dt¡}nG|rl|tfv rl	 |  t¡ t dt¡}n3|r€|tfv r€	 |  t¡ t dt¡}n|r”|tfv r”	 |  t¡ t dt¡}nt |  d¡|  ¡ ¡‚|   |¡ |  j|7  _nd S q©NTr   FÚB)Ú
prec0_exprÚLAÚEQÚLEÚmatchÚstructÚpackÚptgEQÚNEÚptgNEÚGTÚptgGTÚLTÚptgLTÚGEÚptgGEÚptgLEr   ÚNoViableAltExceptionÚgetFilenamer9   ©r<   Úarg_typeÚla1Úopr   r   r   r?   S   sH   








ÜzParser.exprc                 C   óV   	 |   |¡ 	 |  d¡tkr(	 	 |  t¡ t dt¡}|   |¡ |  j|7  _nd S q©NTr   rB   )Ú
prec1_exprrD   ÚCONCATrG   rH   rI   Ú	ptgConcatr9   ©r<   rW   rY   r   r   r   rC   €   ó   


÷zParser.prec0_exprc                 C   ó¾   	 |   |¡ 	 |  d¡tks|  d¡tkr\	 |  d¡}	 |r0|tfv r0	 |  t¡ t dt¡}n|rD|tfv rD	 |  t¡ t dt¡}nt	 
|  d¡|  ¡ ¡‚|   |¡ |  j|7  _nd S qrA   )Ú
prec2_exprrD   ÚADDÚSUBrG   rH   rI   ÚptgAddÚptgSubr   rT   rO   rU   r9   rV   r   r   r   r\   ’   s(   




ëzParser.prec1_exprc                 C   ra   rA   )Ú
prec3_exprrD   ÚMULÚDIVrG   rH   rI   ÚptgMulÚptgDivr   rT   rO   rU   r9   rV   r   r   r   rb   °   s(   




ìzParser.prec2_exprc                 C   rZ   r[   )Ú
prec4_exprrD   ÚPOWERrG   rH   rI   ÚptgPowerr9   r_   r   r   r   rg   Í   r`   zParser.prec3_exprc                 C   s’   	 |   |¡ |  d¡}	 |r&|tfv r&	 |  t¡ |  jt dt¡7  _d S |r>|tt	t
tttttttttttttfv r>d S t |  d¡|  ¡ ¡‚©Nr   FrB   )Ú
prec5_exprrD   ÚPERCENTrG   r9   rH   rI   Ú
ptgPercentÚEOFrE   rK   rM   rO   rQ   rF   rc   rd   rh   ri   rm   ÚRPÚCOMMAÚ	SEMICOLONr]   r   rT   rU   ©r<   rW   rX   r   r   r   rl   ß   s   


,zParser.prec4_exprc                 C   s’   |   d¡}	 |r|ttttttttt	t
tfv r	 |  |¡ d S |r>|tfv r>	 |  t¡ |  |¡ |  jt dt¡7  _d S t |  d¡|  ¡ ¡‚ro   )rD   Ú
TRUE_CONSTÚFALSE_CONSTÚ	STR_CONSTÚ	NUM_CONSTÚ	INT_CONSTÚFUNC_IFÚFUNC_CHOOSEÚNAMEÚ	QUOTENAMEÚLPÚREF2DÚprimaryrd   rG   r9   rH   rI   Ú	ptgUminusr   rT   rO   rU   rw   r   r   r   rp   ò   s   
"

zParser.prec5_exprc           2      C   sª  d }d }d }d }d }d }d }d }	d }
d }|   d¡}	 |r5|tfv r5	 |  t¡ |  jt dtd¡7  _d S |rP|tfv rP	 |  t¡ |  jt dtd¡7  _d S |r||tfv r|	 |  	d¡}|  t¡ |  jt dt
¡t|jdd…  dd¡ƒ 7  _d S |rŸ|tfv rŸ	 |  	d¡}|  t¡ |  jt d	tt|jƒ¡7  _d S |r¤|tfv r¤	 |  t¡ |  t¡ |  d
¡ |   d¡}	 |rÌ|tfv rÌ	 |  t¡ n|rÚ|tfv rÚ	 |  t¡ nt |  	d¡|  ¡ ¡‚|  jt dtdd¡7  _t| jƒd }|  |¡ |   d¡}	 |r|tfv r	 |  t¡ n|r$|tfv r$	 |  t¡ nt |  	d¡|  ¡ ¡‚|  jt dtdd¡7  _t| jƒd }| jd |… t d|| ¡ | j|d d …  | _|  |¡ |  t¡ |  jt dtdd¡7  _|  jt dtdd¡7  _t| jƒ}| jd |… t d||d  d ¡ | j|d d …  | _d S |rM|tfv rM	 |  t¡ d}g }|  t¡ |  d
¡ t| jƒ}t| jƒg}	 |   d¡tksÝ|   d¡tkrk	 |   d¡}	 |rô|tfv rô	 |  t¡ n|r|tfv r	 |  t¡ nt |  	d¡|  ¡ ¡‚t| jƒ}|   d¡}	 |r5|tttttttt t!t"tt#fv r5	 |  |¡ n#|rM|tttfv rM	 |  jt dt$¡7  _nt |  	d¡|  ¡ ¡‚| %| j|d … ¡ | %t| jƒ¡ nnqÍ|  t¡ | jd |… | _t|ƒ}dd„ |D ƒ}dg| }d|d< t&|d ddƒD ]}|| ||  d ||d < q—d| d g}t&|ƒD ]}| %|d ||  d ¡ q´d| d }t&|ƒD ]+}t&|| ||d  ƒD ]}| j| }|d |d |d | f| j|< qÜ|d7 }qÏg }| %t dtd|¡¡ | %tjd|d  g|¢R Ž ¡ t&|ƒD ]}| %|| ¡ | %t dtd|| ¡¡ q| %t dt'|d d¡¡ |  jd (|¡7  _d S |rs|tfv rs	 |  t¡ |  |¡ |  t¡ |  jt dt)¡7  _d S |   d¡tkr·t* +|   d¡¡r·	 |  	d¡}|  t¡ t,|jƒ}|dkr§|  jt dt-|¡7  _d S |  jt d	tt|ƒ¡7  _d S |   d¡t#krðt* +|   d¡¡rð	 |  	d¡}|  t#¡ t. /|j¡\}}t0t1|  } |  jt d| ||¡7  _d S |   d¡t#krA|   d¡t2krA	 |  	d¡}|  t#¡ |  t2¡ |  	d¡}|  t#¡ t. /|j¡\}!}"t. /|j¡\}#}$t3t4|  } |  jt d| |!|#|"|$¡7  _d S |   d¡tksY|   d¡t ksY|   d¡t!krC|   d¡t2ksi|   d¡t5krC	 |  6¡ }%|%}&|   d¡}	 |rŠ|t2fv rŠ	 |  t2¡ |  6¡ }&n|r”|t5fv r”nt |  	d¡|  ¡ ¡‚|  t5¡ |  	d¡}|  t#¡ t7t1|  } d}'t. /|j¡\}!}"t dd|!|"¡}'|   d¡}	 |rþ|t2fv rþ	 |  t2¡ |  	d¡}	|  t#¡ t8t4|  } t. /|	j¡\}#}$t dd|!|#|"|$¡}'n%|r|t9t:t;t<t	t=t>t?t"t@tAtBtCttttDfv rnt |  	d¡|  ¡ ¡‚|  jt d| ¡7  _| j %|%|&t| jƒf¡ |  j|'7  _d S |   d¡t krft* +|   d¡¡rf	 |  	d¡}
|  t ¡ tEd |
jF ƒ‚|   d¡t krJ|   d¡tkrJ	 |  	d¡}|  t ¡ |j G¡ }(|(tHv r™tH|( \})}*}+},}-tI|-ƒ}.ntEd!|j ƒ‚|)dk }/|/rÂ| jJ %|(t| jƒd f¡ |  jt d"tKd#d$d¡7  _|  t¡ |  L|.|*|+¡}0|  t¡ |0|+ksÝ|0|*k rætEd%|0|jf ƒ‚|/r ttM|,  }1|  jt d&|1|0d d'¡7  _d S |*|+krtNtM|,  }1|  jt d|1|)¡7  _d S |0dkr5|j G¡ d(kr5|  jt dtd)d¡7  _d S ttM|,  }1|  jt d&|1|0|)¡7  _d S t |  	d¡|  ¡ ¡‚)*Nr   FÚ2Br   rB   éÿÿÿÿz""ú"z<Bdr
   z<BBHé   r   z<Hé   r	   Tc                 S   s   g | ]}t |ƒ‘qS r   )Úlen)Ú.0Úchunkr   r   r   Ú
<listcomp>~  s    z"Parser.primary.<locals>.<listcomp>r   r   z<%dHéd   Ú iÿÿ  z<BHz<B2Hz<B4Hz<3Hz<5Hz<Bz*[formula] found unexpected NAME token (%r)z[formula] unknown function (%s)z<BHHHiÞ­  i¾ï  z%d parameters for function: %sz<2BHéÿ   ÚSUMr    )OrD   rx   rG   r9   rH   rI   ÚptgBoolry   rz   rO   ÚptgStrr   ÚtextÚreplacer{   ÚptgNumÚfloatr}   r   r?   rv   ru   r   rT   rU   ÚptgAttrrŠ   rt   ÚptgFuncVarRr~   r:   r|   r   r€   rd   r‚   Ú
ptgMissArgÚappendÚxrangeÚptgFuncVarVÚjoinÚptgParenÚ_tokenSet_0ÚmemberÚintÚptgIntr   Úcell_to_packed_rowcolÚptgRefRÚ_RVAdeltaRefÚCOLONÚptgAreaRÚ_RVAdeltaAreaÚBANGÚsheetÚ	ptgRef3dRÚ
ptgArea3dRrs   rE   rK   rM   rQ   rF   rc   rh   ri   rm   rq   r]   Ú	ExceptionÚtxtÚupperÚall_funcs_by_nameÚlistr;   Ú	ptgNameXRÚ	expr_listÚ	_RVAdeltaÚptgFuncR)2r<   rW   Ústr_tokÚint_tokÚnum_tokÚ	ref2d_tokÚ
ref2d1_tokÚ
ref2d2_tokÚref3d_ref2dÚref3d_ref2d2Úname_tokÚfunc_tokrX   Úpos0Úpos1Úpos2Ú
rpn_chunksÚ	rpn_startÚref_markersÚmarkÚncÚ	chunklensÚskiplensÚicÚjump_posÚchunk_shiftÚrefxÚrefÚ
choose_rpnÚ	int_valueÚrÚcÚptgÚr1Úc1Úr2Úc2Úsheet1Úsheet2Ú	rpn_ref2dÚ	func_tokuÚopcodeÚmin_argcÚmax_argcÚ	func_typeÚarg_type_strÚarg_type_listÚxcallÚ	arg_countÚfunc_ptgr   r   r   rƒ     sÚ  




4

"





2


>



 


(á
!
 
$ 


"



 "

 




"P









2"

 



ü
ü

"
zParser.primaryc                 C   sÌ   d }d }d }d }|   d¡}	 |r%|tfv r%	 |  d¡}|  t¡ |j}|S |r<|tfv r<	 |  d¡}|  t¡ |j}|S |r[|tfv r[	 |  d¡}|  t¡ |jdd…  dd¡}|S t 	|  d¡|  
¡ ¡‚)Nr   Fr†   z''ú')rD   r   rO   rG   r”   r|   r€   r•   r   rT   rU   )r<   rÏ   Úsheet_ref_nameÚsheet_ref_intÚsheet_ref_quoterX   r   r   r   r«     s2   


ó

	ø

þzParser.sheetc                 C   s¸  d }d}|| }|   d¡}	 |rÇ|ttttttttt	t
ttfv rÇ	 |  |¡ |d7 }	 |   d¡tks9|   d¡tkrÃ	 |t|ƒk rE|| }n|d }|dkrQ|d }|   d¡}	 |re|tfv re	 |  t¡ n|rs|tfv rs	 |  t¡ nt |  d¡|  ¡ ¡‚|   d¡}	 |r|ttttttttt	t
ttfv r	 |  |¡ n!|r³|tttfv r³	 |  jt dt¡7  _nt |  d¡|  ¡ ¡‚|d7 }n	 |S q+|rÑ|tfv rÑ	 |S t |  d¡|  ¡ ¡‚)	Nr   r   FTr†   ú+éþÿÿÿrB   )rD   rx   ry   rz   r{   r|   r}   r~   r   r€   rd   r   r‚   r?   ru   rv   rŠ   rG   r   rT   rO   rU   rt   r9   rH   rI   rš   )r<   râ   rÞ   rß   Úarg_cntrW   rX   r   r   r   r´   2  sV   
$



$
Õ&þzParser.expr_listN)r   r   r   r6   r@   r?   rC   r\   rb   rg   rl   rp   rƒ   r«   r´   r   r   r   r   r3   A   s    	-  r3   )$z<0>rs   z<2>ÚNULL_TREE_LOOKAHEADrx   ry   rz   r{   r|   r}   r~   r   r€   rE   rK   rM   rO   rQ   rF   rc   rd   rh   ri   rm   rq   r   rt   ÚLBÚRBr§   ru   rv   r‚   Ú
REF2D_R1C1rª   r]   c                  C   s   ddg} | S )Nl   `ÿ# r   r   )Údatar   r   r   Úmk_tokenSet_0˜  s   rò   )8r   r   rH   r   ÚUnicodeUtilsr   Ú
ExcelMagicrµ   r¦   r©   r®   r   ÚSKIPÚINVALID_TYPEÚEOF_TYPErs   rí   ÚMIN_USER_TYPErx   ry   rz   r{   r|   r}   r~   r   r€   rE   rK   rM   rO   rQ   rF   rc   rd   rh   ri   rm   rq   r   rt   rî   rï   r§   ru   rv   r‚   rð   rª   r]   r5   r3   r7   rò   ÚBitSetr    r   r   r   r   Ú<module>   sn   
    2)