
    MfV                        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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+Z1 G d, d-ej2                  Z3g d.Z4d/ Z5 ej6         e5                      Z7dS )0   )antlr    N)Utils)upack1)*    @   )RVA)r
   r   r   Dc                       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__     V/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/xlwt/ExcelFormulaParser.pyr   r      s           r   r                  	   
                                                                  !   "   #   c                   V    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S )Parserc                 |    t          j        j        | g|R i | t          | _        d| _        g | _        g | _        d S )Nr   )r   	LLkParser__init___tokenNames
tokenNamesrpnsheet_referencesxcall_references)selfargskwargss      r   r:   zParser.__init__E   sI     7777777% " "r   c                 2    	 |                      d           d S )Nr   )expr)r@   s    r   formulazParser.formulaN   s    		#r   c                    	 |                      |           	 |                     d          t          k    r%|                     d          t          k    r	 |                     d          }	 |rA|t          fv r7	 |                     t                     t          j        dt                    }n|rA|t          fv r7	 |                     t                     t          j        dt                    }nC|rA|t          fv r7	 |                     t                     t          j        dt                    }n |r@|t          fv r6	 |                     t                     t          j        dt                    }n|r@|t          fv r6	 |                     t                     t          j        dt                    }n||r@|t          fv r6	 |                     t                     t          j        dt                     }n:t#          j        |                     d          |                                           |                      |           | xj        |z  c_        nd S HNTr   FB)
prec0_exprLAEQLEmatchstructpackptgEQNEptgNEGTptgGTLTptgLTGEptgGEptgLEr   NoViableAltExceptiongetFilenamer=   r@   arg_typela1ops       r   rD   zParser.exprS   s    	!!!$	r!!dggajjB&6&6ggajjY YSRD[[JJrNNNS%00BB YSRD[[JJrNNNS%00BB YSRD[[JJrNNNS%00BB YSRD[[JJrNNNS%00BB 	YSRD[[JJrNNNS%00BB YSRD[[JJrNNNS%00BB#8TEUEUEWEWXXX)))BI$	r   c                 *   	 |                      |           	 |                     d          t          k    r\	 	 |                     t                     t	          j        dt                    }|                      |           | xj        |z  c_        nd S }NTr   rH   )
prec1_exprrJ   CONCATrM   rN   rO   	ptgConcatr=   r@   r]   r_   s      r   rI   zParser.prec0_expr   s     	!!!		

F""

6"""[i00)))B		r   c                    	 |                      |           	 |                     d          t          k    s|                     d          t          k    r	 |                     d          }	 |r@|t          fv r6	 |                     t                     t          j        dt                    }n||r@|t          fv r6	 |                     t                     t          j        dt                    }n:t          j
        |                     d          |                                           |                      |           | xj        |z  c_        nd S ;rG   )
prec2_exprrJ   ADDSUBrM   rN   rO   ptgAddptgSubr   rZ   rU   r[   r=   r\   s       r   rb   zParser.prec1_expr   s#    	!!!	

C4771::s??ggajjY 	YSSE\\JJsOOOS&11BB YSSE\\JJsOOOS&11BB#8TEUEUEWEWXXX)))B +	r   c                    	 |                      |           	 |                     d          t          k    s|                     d          t          k    r	 |                     d          }	 |r@|t          fv r6	 |                     t                     t          j        dt                    }n||r@|t          fv r6	 |                     t                     t          j        dt                    }n:t          j
        |                     d          |                                           |                      |           | xj        |z  c_        nd S ;rG   )
prec3_exprrJ   MULDIVrM   rN   rO   ptgMulptgDivr   rZ   rU   r[   r=   r\   s       r   rg   zParser.prec2_expr   s!    	!!!	

C4771::s??ggajjY 	YSSE\\JJsOOOS&11BB YSSE\\JJsOOOS&11BB#8TEUEUEWEWXXX)))B)	r   c                 *   	 |                      |           	 |                     d          t          k    r\	 	 |                     t                     t	          j        dt                    }|                      |           | xj        |z  c_        nd S }ra   )
prec4_exprrJ   POWERrM   rN   rO   ptgPowerr=   re   s      r   rm   zParser.prec3_expr   s     	!!!		

E!!

5!!![h//)))B		r   c                 @   	 |                      |           |                     d          }	 |rO|t          fv rE	 |                     t                     | xj        t          j        dt                    z  c_        d S |rf|t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          t*          t,          t.          fv rd S t1          j        |                     d          |                                           Nr   FrH   )
prec5_exprrJ   PERCENTrM   r=   rN   rO   
ptgPercentEOFrK   rQ   rS   rU   rW   rL   rh   ri   rn   ro   rt   RPCOMMA	SEMICOLONrc   r   rZ   r[   r@   r]   r^   s      r   rs   zParser.prec4_expr   s     	!!!ggajj		Q 	QSWI%%JJwHHC444HHHH 	QSSBr"R3s3s5ER[\bcccD0T=M=M=O=OPPPr   c                 .   |                      d          }	 |r^|t          t          t          t          t
          t          t          t          t          t          t          fv r	 |                     |           d S |rd|t          fv rZ	 |                     t                     |                     |           | xj        t!          j        dt$                    z  c_        d S t'          j        |                     d          |                                           rw   )rJ   
TRUE_CONSTFALSE_CONST	STR_CONST	NUM_CONST	INT_CONSTFUNC_IFFUNC_CHOOSENAME	QUOTENAMELPREF2Dprimaryri   rM   r=   rN   rO   	ptgUminusr   rZ   rU   r[   r   s      r   rx   zParser.prec5_expr   s     ggajj	Q 		QSZIi	RYZefjktuwx}~~~LL""""" 	QSSE\\JJsOOOLL"""HHC333HHHH0T=M=M=O=OPPPr   c                 )   d }d }d }d }d }d }d }d }	d }
d }|                      d          }	 |rP|t          fv rF	 |                     t                     | xj        t	          j        dt          d          z  c_        d S |rP|t          fv rF	 |                     t                     | xj        t	          j        dt          d          z  c_        d S |r|t          fv r	 | 	                    d          }|                     t                     | xj        t	          j        dt                    t          |j        dd                             dd                    z   z  c_        d S |rw|t          fv rm	 | 	                    d          }|                     t                     | xj        t	          j        d	t          t!          |j                            z  c_        d S |rK|t"          fv r@	 |                     t"                     |                     t$                     |                     d
           |                      d          }	 |r&|t(          fv r	 |                     t(                     nb|r&|t*          fv r	 |                     t*                     n:t-          j        | 	                    d          |                                           | xj        t	          j        dt2          dd          z  c_        t5          | j                  dz
  }|                     |           |                      d          }	 |r&|t(          fv r	 |                     t(                     nb|r&|t*          fv r	 |                     t*                     n:t-          j        | 	                    d          |                                           | xj        t	          j        dt2          dd          z  c_        t5          | j                  dz
  }| j        d |         t	          j        d||z
            z   | j        |dz   d          z   | _        |                     |           |                     t6                     | xj        t	          j        dt2          dd          z  c_        | xj        t	          j        dt8          dd          z  c_        t5          | j                  }| j        d |         t	          j        d||dz   z
  dz
            z   | j        |dz   d          z   | _        d S |r|t:          fv r	 |                     t:                     d}g }|                     t$                     |                     d
           t5          | j                  }t5          | j                  g}	 |                      d          t*          k    s|                      d          t(          k    r	 |                      d          }	 |r&|t(          fv r	 |                     t(                     nb|r&|t*          fv r	 |                     t*                     n:t-          j        | 	                    d          |                                           t5          | j                  }|                      d          }	 |rc|t          t          t          t          t>          t"          t:          t@          tB          tD          t$          tF          fv r	 |                     |           n||r@|t6          t*          t(          fv r*	 | xj        t	          j        dtH                    z  c_        n:t-          j        | 	                    d          |                                           |%                    | j        |d                     |%                    t5          | j                             nn6|                     t6                     | j        d |         | _        t5          |          }d |D             }dg|z  }d|d<   tM          |dz
  dd          D ]}||         ||         z   dz   ||dz
  <   d|z  dz   g}tM          |          D ])}|%                    |d         ||         z   dz              *d|z  dz   }tM          |          D ]X}tM          ||         ||dz                      D ]1}| j        |         }|d         |d         |d         |z   f| j        |<   2|dz  }Yg }|%                    t	          j        dt2          d|                     |%                    t	          j        d|dz   z  g|R             tM          |          D ]R}|%                    ||                    |%                    t	          j        dt2          d||                              S|%                    t	          j        dtN          |dz   d                     | xj        d(                    |          z  c_        d S |r~|t$          fv rt	 |                     t$                     |                     |           |                     t6                     | xj        t	          j        dtR                    z  c_        d S |                      d          t>          k    rtT          +                    |                      d                    r	 | 	                    d          }|                     t>                     tY          |j                  }|dk    r+| xj        t	          j        dtZ          |          z  c_        d S | xj        t	          j        d	t          t!          |                    z  c_        d S |                      d          tF          k    rtT          +                    |                      d                    r	 | 	                    d          }|                     tF                     t]          j/        |j                  \  }}t`          tb          |         z   } | xj        t	          j        d| ||          z  c_        d S |                      d          tF          k    r|                      d          td          k    r	 | 	                    d          }|                     tF                     |                     td                     | 	                    d          }|                     tF                     t]          j/        |j                  \  }!}"t]          j/        |j                  \  }#}$tf          th          |         z   } | xj        t	          j        d| |!|#|"|$          z  c_        d S |                      d          t>          k    s=|                      d          t@          k    s|                      d          tB          k    rB|                      d          td          k    s|                      d          tj          k    r	 | 6                                }%|%}&|                      d          }	 |r:|td          fv r0	 |                     td                     | 6                                }&nG|r|tj          fv rn:t-          j        | 	                    d          |                                           |                     tj                     | 	                    d          }|                     tF                     tn          tb          |         z   } d}'t]          j/        |j                  \  }!}"t	          j        dd|!|"          }'|                      d          }	 |r|td          fv r	 |                     td                     | 	                    d          }	|                     tF                     tp          th          |         z   } t]          j/        |	j                  \  }#}$t	          j        dd|!|#|"|$          }'n|rk|tr          tt          tv          tx          t          tz          t|          t~          tD          t          t          t          t          t6          t*          t(          t          fv rn:t-          j        | 	                    d          |                                           | xj        t	          j        d|           z  c_        | j        %                    |%|&t5          | j                  f           | xj        |'z  c_        d S |                      d          t@          k    rttT          +                    |                      d                    rG	 | 	                    d          }
|                     t@                     t          d|
jF        z            |                      d          t@          k    r|                      d          t$          k    rm	 | 	                    d          }|                     t@                     |j        G                                }(|(t          v r#t          |(         \  })}*}+},}-t          |-          }.nt          d |j        z            |)dk     }/|/r\| jJ        %                    |(t5          | j                  dz   f           | xj        t	          j        d!t          d"d#d          z  c_        |                     t$                     | L                    |.|*|+          }0|                     t6                     |0|+k    s|0|*k     rt          d$|0|j        fz            |/r?t8          t          |,         z   }1| xj        t	          j        d%|1|0dz   d&          z  c_        d S |*|+k    r;t          t          |,         z   }1| xj        t	          j        d|1|)          z  c_        d S |0dk    rI|j        G                                d'k    r,| xj        t	          j        dt2          d(d          z  c_        d S t8          t          |,         z   }1| xj        t	          j        d%|1|0|)          z  c_        d S t-          j        | 	                    d          |                                           ))Nr   F2Br   rH   z"""z<Bdr   z<BBH   r   z<H   r
   Tc                 ,    g | ]}t          |          S r   )len).0chunks     r   
<listcomp>z"Parser.primary.<locals>.<listcomp>~  s    <<<U<<<r   r   r   z<%dHd    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#   )OrJ   r   rM   r=   rN   rO   ptgBoolr   r   rU   ptgStrr   textreplacer   ptgNumfloatr   r   rD   r~   r}   r   rZ   r[   ptgAttrr   r|   ptgFuncVarRr   r>   r   r   r   ri   r   
ptgMissArgappendxrangeptgFuncVarVjoinptgParen_tokenSet_0memberintptgIntr   cell_to_packed_rowcolptgRefR_RVAdeltaRefCOLONptgAreaR_RVAdeltaAreaBANGsheet	ptgRef3dR
ptgArea3dRr{   rK   rQ   rS   rW   rL   rh   rn   ro   rt   ry   rc   	Exceptiontxtupperall_funcs_by_namelistr?   	ptgNameXR	expr_list	_RVAdeltaptgFuncR)2r@   r]   str_tokint_toknum_tok	ref2d_tok
ref2d1_tok
ref2d2_tokref3d_ref2dref3d_ref2d2name_tokfunc_tokr^   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_ptgs2                                                     r   r   zParser.primary  s     	

ggajj~	Q |	QSZL((JJz"""HHD'1555HHHH x	QS[M))JJ{###HHD'1555HHHH t	QSYK''ggajjGJJy!!!HHC006',qt:L:T:TU[]a:b:b3c3cccHHHH o	QSYK''ggajjGJJy!!!HHE653F3FGGGHHHH j	QSWI%%JJwJJrNNNIIcNNN''!**C	U U++

9%%%% U

5!!!!4TWWQZZAQAQASASTTTHHFGT1===HHtx==1$DIIh''!**C	U U++

9%%%% U

5!!!!4TWWQZZAQAQASASTTTHHFGT1===HHtx==1$DxT49)E)EEQUVWQWQXQXHYYDHIIhJJrNNNHHFGT1===HHHHFKA>>>HHtx==DxT4a=?)K)KKdhW[\]W]W^W^N__DHHH A	QS[M))JJ{###HJJJrNNNIIcNNNDHIt4556KGGAJJ%%Y)>)>''!**C	] ]!3!3

9---- ]

5))))"'"<TWWQZZIYIYI[I["\"\\tx==D''!**C	] ]K	)T]^efqrv  xA  BE  FH  IN  )O  "O  "O		(++++ ]E)(<!<!<FKZ$@$@@"'"<TWWQZZIYIYI[I["\"\\%%dhtuuo666&&s4+@'A'ABBBB?B JJrNNNx

+DHZB<<<<<IsRxHHRLRT1b)) A A (y} <q @x1~~B
|HRjj A Ax|im;a?@@@@b&1*KRjj    !+b/;r!t3DEE X X4.t4325a&#a&#a&;BV1W4(..a{{Jfk&'4DDEEEfk&BqD/EHEEEFFFRjj S S  B000  VWdHRL!Q!QRRRRfk&+r!tSIIJJJHH
+++HHHH ~	QSRD[[JJrNNNIIhJJrNNNHHC222HHHH

I%%K,>,>twwqzz,J,J%''!**

9%%%--	%%88v{5&)DDD888888v{5&%	:J:JKKK8888''!**e##+*<*<TWWQZZ*H*H# GGAJJ	

5!!!29>BB1X 66FKQ:::''!**e##$''!**e*;*;!WWQZZ


5!!!

5!!!!WWQZZ


5!!!4Z_EEB4Z_EEBx!88FKRRDDD''!**i''4771::t+;+;twwqzz9?T?T[_[b[bcd[e[egl[l[lptpwpwxypzpz  }A  qA  qAzz||ggajj	Y YSUG^^JJu%%%::<<FF YSTF]]#8TEUEUEWEWXXX

4   "ggajj

5!!!,x"88	4[5EFFB"Kvr2>>	ggajjY YSUG^^JJu%%%#'771::LJJu%%%$}X'>>C"89JKKFB &E62r2r J JII YSSBr"R3s3s5QXY[\abklr$sss#8TEUEUEWEWXXXFKc222%,,ffc$(mm-LMMMI%''!**d""););DGGAJJ)G)G"771::

4    Lx| [\\\''!**d""R771::

4   $M//11	 111
 $5Y#?	!F#'#5#5=="#Dx}#TUUU
  (//CMMA<M0NOOO88v{7 	    88
 

2..(KK	

2x''9x+?+?"#CyRZR_F`#`aaa 
P)Ii,@@888v{68Y]CPPP8888))&9)==888v{5(FCCC8888!^^(;(;(=(=(F(F88v{67D!DDD8888)Ii,@@888v{68YOOO88880T=M=M=O=OPPPr   c                    d }d }d }d }|                      d          }	 |rB|t          fv r8	 |                     d          }|                     t                     |j        }n|rB|t
          fv r8	 |                     d          }|                     t
                     |j        }n|r^|t          fv rT	 |                     d          }|                     t                     |j        dd                             dd          }n:t          j	        |                     d          | 
                                          |S )Nr   Fr   z''')rJ   r   rU   rM   r   r   r   r   r   rZ   r[   )r@   r   sheet_ref_namesheet_ref_intsheet_ref_quoter^   s         r   r   zParser.sheet  s9   ggajj	Q 	QSTF]]!WWQZZNJJt %CC 	QSYK'' GGAJJMJJy!!!$CC 	QSYK''"ggajjOJJy!!!!&qt,44T3??CC0T=M=M=O=OPPP
r   c                    d }d}||         }|                      d          }	 |rz|t          t          t          t          t
          t          t          t          t          t          t          t          fv r-	 |                     |           |dz  }	 |                      d          t          k    s|                      d          t          k    r	 |t!          |          k     r	||         }n|d         }|dk    r|d         }|                      d          }	 |r&|t          fv r	 |                     t                     nb|r&|t          fv r	 |                     t                     n:t%          j        |                     d          |                                           |                      d          }	 |rc|t          t          t          t          t
          t          t          t          t          t          t          t          fv r	 |                     |           n||r@|t,          t          t          fv r*	 | xj        t1          j        dt4                    z  c_        n:t%          j        |                     d          |                                           |dz  }nnnG|r|t,          fv rn:t%          j        |                     d          |                                           |S )	Nr   r   FTr   +rH   )rJ   r   r   r   r   r   r   r   r   r   ri   r   r   rD   r}   r~   r   rM   r   rZ   rU   r[   r|   r=   rN   rO   r   )r@   r   r   r   arg_cntr]   r^   s          r   r   zParser.expr_list2  s     )ggajj/	Q -	QSZIi	RYZefjktuxy{  }B  C  C  CIIhqLG$GGAJJ%%Y)>)>]!3!333"/"8xx"/"3x3"/"3x''!**C	] ]!3!3

9---- ]

5))))"'"<TWWQZZIYIYI[I["\"\\''!**C	] ]K	)T]^efqrv  xA  BE  FH  IN  )O  "O  "O		(++++ ]E)(<!<!<FKZ$@$@@"'"<TWWQZZIYIYI[I["\"\\qLGGI$H  	QSRD[[0T=M=M=O=OPPPr   N)r   r   r   r:   rE   rD   rI   rb   rg   rm   rs   rx   r   r   r   r   r   r   r7   r7   A   s        # # #  
* * *Z  $  <  :  $Q Q Q&Q Q Q&MQ MQ MQ`  :: : : : :r   r7   )$z<0>r{   z<2>NULL_TREE_LOOKAHEADr   r   r   r   r   r   r   r   r   rK   rQ   rS   rU   rW   rL   rh   ri   rn   ro   rt   ry   r   r|   LBRBr   r}   r~   r   
REF2D_R1C1r   rc   c                      ddg} | S )Nl   `# r   r   )datas    r   mk_tokenSet_0r     s    !DKr   )8r   r   rN   r   UnicodeUtilsr   
ExcelMagicr   r   r   r   r   SKIPINVALID_TYPEEOF_TYPEr{   r   MIN_USER_TYPEr   r   r   r   r   r   r   r   r   rK   rQ   rS   rU   rW   rL   rh   ri   rn   ro   rt   ry   r   r|   r   r   r   r}   r~   r   r   r   rc   r9   r7   r;   r   BitSetr   r   r   r   <module>r     s                               d..	dD99dA66    I    j(ni/ )
			
		



	

		k k k k kU_ k k k\% % %R   el==??++r   