
}\c        @   @  s'  d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m	 Z	 m
 Z
 m Z m Z m Z m Z d d l Td d	 d
 d d d d d d d d d d d d d d d d d d d d d g Z d Z d  Z d! Z d" Z d# Z d$ Z d% Z i d& d 6d' d  6d( d! 6d) d" 6d* d# 6d+ d$ 6Z i e e d 6e e d  6e e e d, 6e e e d# 6e e e d- 6e e e d$ 6e d. 6e e e d/ 6e e e d0 6e e e d1 6e e d2 6e e d3 6j Z d4 Z d! Z d5 Z d  Z d Z d6 Z  d Z! d7 Z" i d d6 6d d 6d d7 6d d 6d
 d  6d d4 6d	 d! 6d8 d5 6Z# d9 Z$ d6 d! d! d d d d d d d d d d d d d d d d d d d d d d6 d d" d! d  d  d4 d: d" d  d4 d" d! d; d5 d5 d5 d  d! d; d! d; d  d  d6 d6 d6 d6 d6 d6 d6 d6 d4 d6 d6 d6 d6 d6 d6 d6 g@ Z% d6 d5 d5 d d d d d d d d d d d d d d d d d d d d d d6 d d< d5 d  d  d4 d: d: d  d4 d< d! d; d; d; d; d4 d! d; d! d; d4 d4 d6 d6 d6 d6 d6 d6 d6 d6 d4 d6 d6 d6 d6 d6 d6 d6 g@ Z& d6 d5 d5 d d d d d d d d d d d d d d d d d d d d d d6 d d< d5 d  d  d4 d: d: d4 d! d< d! d; d; d; d; d4 d! d; d! d; d4 d4 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 d6 g@ Z' d6 d5 d5 d d d d d d d d d d d d d d d d d d d d d d6 d d6 d6 d  d  d4 d: d: d4 d! d, d! d; d; d; d; d4 d! d; d! d; d4 d4 d6 d6 d6 d6 d6 d6 d6 d6 d6 d= d> d? d> d? d6 d6 g@ Z( d6 d5 d5 d d d d d d d d d d d d d d d d d d d d d d d d6 d6 d  d  d4 d: d: d4 d! d5 d5 d: d; d; d; d4 d5 d: d5 d: d4 d4 d6 d6 d6 d6 d6 d6 d6 d6 d6 d; d; d< d; d< d6 d6 g@ Z) i e% d@ 6e% d? 6e& dA 6e' dB 6e' d3 6e( dC 6e( dD 6e) dE 6Z* dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dv dv dv dv dv dv dv dw dx dy dz d{ d| dv dv g@ Z+ id} d7 dA d! d d~ d f d7 6d d  d4 d! d4 d~ d f d 6d d d d  d d~ d~ f d  6d d d d  d d~ d~ f d4 6d d7 dA d! d d~ d f d! 6d d dA d! d d~ d f d5 6d d dA d! d d~ d f d 6d d dA d! d d~ d f d; 6d d7 d d! d d~ d f d" 6d d7 d d! d d~ d f d: 6d d7 d7 d  d7 d~ dv f d 6d d  dA d! d  d~ d f d< 6d d dA d! d d~ d f d 6d d d  d! d d~ d~ f d 6d d  d4 d! d4 d~ d f d 6d d d d  d d~ d~ f d, 6d d d d  d d~ d~ f d# 6d d d d  d d~ d~ f d- 6d d d d  d d~ d~ f d> 6d d7 d7 d  d7 d~ dv f d 6d d d d  d d~ d~ f d@ 6d d d d  d d~ d~ f d? 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d= 6d d d d  d d~ d~ f d 6d d  d  d  d  d~ d f d 6d d  d4 d! d  d~ d f d 6d d  d! d d! d d f d 6d d  d  d  d  d~ d f dA 6d d4 d4 d  d4 d~ d f d 6d d d d  d d~ d~ f d$ 6d d d d  d d~ d~ f d 6d d7 d7 d  d7 d~ dv f d 6d d7 d7 d  d7 d~ dv f d. 6d d dA d! d d~ d f d 6d d dA d! d d~ d f d 6d d d d  d d~ d~ f d 6d d  d  d  d  d~ d f d 6d d4 d4 d  d4 d~ d f dB 6d d4 d4 d  d4 d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d4 d4 d  d4 d~ d f d2 6d d4 d4 d  d4 d~ d f d3 6d d dA d! d d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d  d  d  d  d~ d f d 6d d d! d! d! d d f d 6d d d! d! d! d d f dC 6d d d! d! d! d d f d 6d d d! d! d! d d f d 6d d4 d5 d! d5 d~ d f d 6d d4 d5 d! d5 d~ d f d/ 6d d4 d5 d! d5 d~ d f d0 6d d4 d5 d! d5 d~ d f d1 6d d4 d d! d d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d d  d! d  d~ d f d 6d d7 d7 d d7 d~ dv f d% 6d d  d4 d! d4 d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d4 d4 d  d4 d~ d f d 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d d  d! d  d~ d f dD 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d d d  d d~ d~ f d 6d d7 d7 d d7 d~ dv f d 6d d d d  d d~ d f d 6dd d d  d d~ d f d6dd d d  d d~ d f d6dd4 d5 d! d5 d df d6dd  d4 d! d4 d~ d f d	6d
d d d  d d d f d6dd d d  d d~ d~ f d6dd! d! d  d! d~ df d6dd  d  d  d  d~ d f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd  dA d! d  d~ d f d6dd4 d! d! d! d~ df d6dd4 d! d! d! d~ df d6dd d d  d d~ d f d6d d d  d! d  d~ d f d!6d"d d d  d d~ d~ f d#6d$d d d  d d~ d~ f d%6d&d d d  d d~ d~ f d'6d(d d d  d d~ d~ f d)6d*d d  d! d  d~ d f d+6d,d d  d! d  d~ d f d-6d.d  d  d  d  d~ d f d/6d0d d d  d d~ d~ f d16d2d! d! d  d! d~ d3f d46d5d4 d! d! d! d~ d3f d66d7d d d  d d~ d~ f d86d9d  d4 d! d4 d~ d f d:6d& d d  d d  d~ d f d;6d<d d d  d d~ d~ f d=6d>d d d  d d~ d~ f d?6d@d d d  d d~ d~ f dA6dBd d d  d d~ d~ f dC6dDd d d  d d~ d f dE6dFd d d  d d~ d f dG6dHd d d  d d~ d~ f dI6dJd d d  d d~ d~ f dK6dLd4 d4 d  d4 d~ d f dM6dNd! d! d  d! d~ d3f dO6dPd! d5 d! d5 d~ d f dQ6dRd d  d d  d d f dS6dTd d d  d d~ d~ f dU6dVd d d  d d~ d f dW6dXd d d  d d d f dY6dZd  d  d  d  d d[f d\6d]d! d d! d d~ d f d^6d_d! d d! d d~ d f d`6dad7 dA d! d d~ d f db6dcd7 dA d! d d~ d f dd6ded d d  d d~ d~ f df6dgd4 d4 d  d4 d~ d f dh6did d d  d d~ d~ f dj6dkd dA d! d d~ d f dl6dmd dA d! d d~ d f dn6dod4 d4 d  d4 d~ d f dp6dqd4 d4 d  d4 d~ d f dr6dsd d  d! d  d~ d f dt6dud d d  d d~ d~ f dv6dwd4 d4 d  d4 d~ d f dx6dyd d  d! d  d~ d f dz6d{d  d4 d! d4 d~ d f d|6d}d  d4 d! d4 d~ d f d~6dd! d! d  d! d~ d3f d6dd d  d! d  d~ d f d6dd d  d! d  d~ d f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd  d  d  d  d~ d f d6dd  d  d  d  d~ d f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd  d4 d! d4 d~ df d6dd  d5 d! d5 d~ d f d6dd  d4 d! d4 d~ d f d6dd7 d7 d d7 d~ dv f d6dd5 d; d! d; d~ df d6dd dA d! d d~ d f d6dd dA d! d d~ d f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd! d5 d! d5 d~ d f d6dd  d  d  d  d df d6dd d d  d d~ d~ f d6dd dA d! d d~ d f d6dd4 d5 d! d d~ d~ f d6dd d d  d d~ d~ f d6dd4 d5 d! d d~ d~ f d6dd! d! d  d! d~ d3f d6dd  d  d  d  d~ d f d6dd  d  d  d  d~ d f d6dd  d  d  d  d~ d f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd d d  d d~ d~ f d6dd  d  d  d  d~ d f d6dd! d! d  d! d~ d3f d6dd4 d4 d  d4 d~ d f d6dd  d  d  d  d~ d f d6dd! d! d  d! d~ d3f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd! d! d  d! d~ d3f d6dd d d  d d~ d~ f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd4 d4 d  d4 d~ d f d6dd d d  d d~ d~ f d6dd  d  d  d  d~ d f d6dd4 d4 d  d4 d~ d f d6dd4 d4 d  d4 d~ d f d6dd! d! d  d! d~ d3f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6d d  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd4 d4 d  d4 d~ d	f d
6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd  d  d  d  d~ d[f d6dd! d! d  d! d~ df d6dd4 d! d! d4 d~ df d6dd dA d! d d~ d f d6dd dA d! d d~ d f d 6d!d dA d! d d~ d f d"6d#d7 dA d! d d~ d f d$6d%d dA d! d d~ d f d&6d'd dA d! d d~ d f d(6d)d  d4 d! d  d~ d f d*6d+d  d  d  d  d~ d f d,6d-d  d  d  d  d~ d f d.6d/d  d  d  d  d~ d f d06d1d  d  d  d  d~ d f d26d3d  d4 d! d  d~ d f d46d5d dA d! d d~ d f d66d7d  d  d  d  d~ d f d86d9d  d  d  d  d~ d f d:6d;d7 dA d! d d~ d~ f d<6d=d  d  d  d  d~ d f d>6d?d d d  d d~ d~ f d@6dAd d d  d d~ d~ f dB6dCd  dA d! d  d~ d f dD6dEd  d4 d! d4 d~ dFf dG6dHd  d  d  d  d~ d f dI6dJd d d  d d~ d f dK6dLd! d! d  d! d~ d3f dM6dNd4 d4 d  d4 d~ d f dO6dPd d d  d d~ d~ f dQ6dRd  d  d  d  d~ d f dS6dTd d  d! d  d~ d f dU6dVd  d  d  d  d~ d f dW6dXd d  d! d  d~ d f dY6dZd d d  d d~ d~ f d[6d\d dA d! d d~ d f d]6d^d dA d! d d~ d f d_6d`d dA d! d d~ d f da6dbd dA d! d d~ d f dc6ddd dA d! d d~ d f de6dfd dA d! d d~ d f dg6dhd dA d! d d~ d f di6djd d d  d d~ d~ f dk6dld d d  d d~ d~ f dm6dnd d d  d d~ d~ f do6dpd d d  d d~ d~ f dq6drd d d  d d~ d~ f ds6dtd d d  d d~ d~ f du6dvd d d  d d~ d~ f dw6dxd d d  d d~ d~ f dy6dzd d d  d d~ d~ f d{6d|d d d  d d~ d~ f d}6d~d d d  d d~ d~ f d6dd  d5 d! d d~ d~ f d6Z, i	 dd7 6dd 6dd  6dd! 6dd" 6dd# 6dd$ 6dd 6dd 6Z- e. d; d" d d< d d d g  Z/ e0 e1 e0 e1 e0 e1 f Z2 e1 e0 e1 e0 e1 e0 f Z3 d  Z4 e5 e5 d Z6 e5 e5 d Z7 e5 e5 d Z8 e5 e5 d Z9 d7 d Z: d7 d Z; de< f d    YZ= d e> f d    YZ? d e@ f d    YZA d4 ZB d! ZC d5 ZD d ZE d; ZF d" ZG eH d: d,  \ ZI ZJ ZK ZL ZM ZN d  ZO d  ZP d  ZQ d  ZR d  ZS d  ZT d  ZU d  ZV d  ZW i eO e 6eX e! 6ZY i eO e 6eO e! 6ZZ i eW e 6eO e! 6Z[ i eY e e j\ dA df eB 6eY e e j] dA df eC 6eY e e j^ dB df eD 6eY e e j_ dB df eE 6eY e eP dC df eF 6e[ e! e j\ d@ df eG 6eZ e eQ d df eI 6eZ e eR d df eJ 6eZ e eS d df eK 6eZ e eT d df eL 6eZ e eU d df eM 6eZ e eV d df eN 6Z` i d  dD ddv f d 6d  dD ddv f d> 6d  d dv df d@ 6Za dZb dZc d5 Zd d Ze d7 d7 d Zf e5 e5 e5 d7 d7 d7 d Zg d7 d7 d Zh e5 d7 d Zi e5 d7 d Zj d  Zk d7 d Zl e5 e5 d7 d Zm d  Zn d7 d Zo e5 e5 d7 d Zp d  Zq e5 e5 d7 d Zr d  Zs d  Zt d  Zu d S(  s9   
Module for parsing/evaluating Microsoft Excel formulas.
i(   t   print_functionN(   t   unpacki   (   t
   BaseObjectt	   XLRDErrort   error_text_from_codet   hex_char_dumpt   unpack_string_update_post   unpack_unicode_update_pos(   t   *t   oBOOLt   oERRt   oNUMt   oREFt   oRELt   oSTRGt   oUNKt   decompile_formulat   dump_formulat   evaluate_name_formulat
   okind_dictt   rangename3dt   rangename3drelt   cellnamet   cellnameabst   colnamet   FMLA_TYPE_CELLt   FMLA_TYPE_SHAREDt   FMLA_TYPE_ARRAYt   FMLA_TYPE_COND_FMTt   FMLA_TYPE_DATA_VALt   FMLA_TYPE_NAMEt   Operandt   Ref3Di   i   i   i   i    i?   t   CELLt   SHAREDt   ARRAYs   COND-FMTs   DATA-VALt   NAMEi   i   i#   i9   i:   i;   i,   i-   i   i   ii    t   oMSNGt   ,i	   i   i   i   i   i   i   i   i(   i2   iF   iP   t   Unk00t   Expt   Tblt   Addt   Subt   Mult   Divt   Powert   Concatt   LTt   LEt   EQt   GEt   GTt   NEt   Isectt   Listt   Ranget   Uplust   Uminust   Percentt   Parent   MissArgt   Strt   Extendedt   Attrt   Sheett   EndSheett   Errt   Boolt   Intt   Numt   Arrayt   Funct   FuncVart   Namet   Reft   Areat   MemAreat   MemErrt   MemNoMemt   MemFunct   RefErrt   AreaErrt   RefNt   AreaNt   MemAreaNt	   MemNoMemNt    t   FuncCEt   NameXt   Ref3dt   Area3dt   RefErr3dt	   AreaErr3dt   COUNTt   Vt   Rt   IFt   VRRt   ISNAt   ISERRORt   SUMt   AVERAGEt   MINi   t   MAXt   ROWt   COLUMNt   NAi
   t   NPVt   VRt   STDEVi   t   DOLLARi   t   FIXEDt   VVVi   t   SINt   COSt   TANt   ATANt   PIi   t   SQRTt   EXPt   LNi   t   LOG10i   t   ABSi   t   INTt   SIGNi   t   ROUNDt   VVi   t   LOOKUPi   t   INDEXt   RVVVi   t   REPTt   MIDi   t   LENt   VALUEi!   t   TRUEi"   t   FALSEt   ANDi$   t   ORi%   t   NOTi&   t   MODi'   t   DCOUNTt   RRRt   DSUMi)   t   DAVERAGEi*   t   DMINi+   t   DMAXt   DSTDEVt   VARi.   t   DVARi/   t   TEXTi0   t   LINESTt   At   RRVVi1   t   TRENDt   RRRVt   LOGESTi3   t   GROWTHi4   t   PVt   VVVVVi8   t   FVt   NPERt   PMTt   RATEt   VVVVVVi<   t   MIRRt   RVVi=   t   IRRt   RVi>   t   RANDt   MATCHi@   t   DATEiA   t   TIMEiB   t   DAYiC   t   MONTHiD   t   YEARiE   t   WEEKDAYt   HOURiG   t   MINUTEiH   t   SECONDiI   t   NOWiJ   t   AREASiK   t   ROWSiL   t   COLUMNSiM   t   OFFSETt   RVVVViN   t   SEARCHiR   t	   TRANSPOSEiS   t   TYPEiV   t	   SERIESSUMt   VVVAi\   t   ATAN2ia   t   ASINib   t   ACOSic   t   CHOOSEid   t   HLOOKUPt   VRRVie   t   VLOOKUPif   t   ISREFii   t   LOGim   t   CHARio   t   LOWERip   t   UPPERiq   t   PROPERir   t   LEFTis   t   RIGHTit   t   EXACTiu   t   TRIMiv   t   REPLACEt   VVVViw   t
   SUBSTITUTEix   t   CODEiy   t   FINDi|   i}   t   ISERRi~   t   ISTEXTi   t   ISNUMBERi   t   ISBLANKi   t   Ti   t   Ni   t	   DATEVALUEi   t	   TIMEVALUEi   t   SLNi   t   SYDi   t   DDBi   t   INDIRECTi   t   CLEANi   t   MDETERMi   t   MINVERSEi   t   MMULTt   AAi   t   IPMTi   t   PPMTi   t   COUNTAi   t   PRODUCTi   t   FACTi   t   DPRODUCTi   t	   ISNONTEXTi   t   STDEVPi   t   VARPi   t   DSTDEVPi   t   DVARPi   t   TRUNCi   t	   ISLOGICALi   t   DCOUNTAi   t   USDOLLARi   t   FINDBi   t   SEARCHBi   t   REPLACEBi   t   LEFTBi   t   RIGHTBi   t   MIDBi   t   LENBi   t   ROUNDUPi   t	   ROUNDDOWNi   t   ASCi   t   DBCSi   t   RANKt   VRVi   t   ADDRESSi   t   DAYS360i   t   TODAYi   t   VDBt   VVVVVVVi   t   MEDIANi   t
   SUMPRODUCTi   t   SINHi   t   COSHi   t   TANHi   t   ASINHi   t   ACOSHi   t   ATANHi   t   DGETi   t   INFOi   t   DBi   t	   FREQUENCYt   RRi   s
   ERROR.TYPEi  t   AVEDEVi  t   BETADISTi  t   GAMMALNi  t   BETAINVi  t	   BINOMDISTi  t   CHIDISTi  t   CHIINVi  t   COMBINi  t
   CONFIDENCEi  t	   CRITBINOMi  t   EVENi  t	   EXPONDISTi  t   FDISTi  t   FINVi  t   FISHERi  t	   FISHERINVi  t   FLOORi  t	   GAMMADISTi  t   GAMMAINVi  t   CEILINGi   t   HYPGEOMDISTi!  t   LOGNORMDISTi"  t   LOGINVi#  t   NEGBINOMDISTi$  t   NORMDISTi%  t	   NORMSDISTi&  t   NORMINVi'  t   NORMSINVi(  t   STANDARDIZEi)  t   ODDi*  t   PERMUTi+  t   POISSONi,  t   TDISTi-  t   WEIBULLi.  t   SUMXMY2i/  t   SUMX2MY2i0  t   SUMX2PY2i1  t   CHITESTi2  t   CORRELi3  t   COVARi4  t   FORECASTt   VAAi5  t   FTESTi6  t	   INTERCEPTi7  t   PEARSONi8  t   RSQi9  t   STEYXi:  t   SLOPEi;  t   TTESTt   AAVVi<  t   PROBt   AAVi=  t   DEVSQi>  t   GEOMEANi?  t   HARMEANi@  t   SUMSQiA  t   KURTiB  t   SKEWiC  t   ZTESTiD  t   LARGEiE  t   SMALLiF  t   QUARTILEiG  t
   PERCENTILEiH  t   PERCENTRANKiI  t   MODEiJ  t   TRIMMEANiK  t   TINViL  t   CONCATENATEiP  t   POWERiQ  t   RADIANSiV  t   DEGREESiW  t   SUBTOTALiX  t   SUMIFt   RVRiY  t   COUNTIFiZ  t
   COUNTBLANKi[  t   ISPMTi^  t   DATEDIFi_  t
   DATESTRINGi`  t   NUMBERSTRINGia  t   ROMANib  t   GETPIVOTDATAif  t	   HYPERLINKig  t   PHONETICih  t   AVERAGEAii  t   MAXAij  t   MINAik  t   STDEVPAil  t   VARPAim  t   STDEVAin  t   VARAio  t   BAHTTEXTip  t   THAIDAYOFWEEKiq  t	   THAIDIGITir  t   THAIMONTHOFYEARis  t   THAINUMSOUNDit  t   THAINUMSTRINGiu  t   THAISTRINGLENGTHiv  t   ISTHAIDIGITiw  t   ROUNDBAHTDOWNix  t   ROUNDBAHTUPiy  t   THAIYEARiz  t   RTDi{  s   Skip??t   Volatilet   Ift   Chooset   Skipt   Sumt   Assignt   Spacet   SpaceVolatilec         C  s&   t  d   t |  | j | j  D  S(   Nc         s  s'   |  ] \ } } } | | |  Vq d  S(   N(    (   t   .0t   funct   numat   numb(    (    s+   lib/python2.7/site-packages/xlrd/formula.pys	   <genexpr>  s   (   t   tuplet   zipt   coords(   t	   box_funcst   boxat   boxb(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   do_box_funcs  s    c   	      C  s   | d ?d @} | d ?d @} |  } | d @} | rs | rQ | d k rQ | d 8} n  | r | d k r | d 8} q n& | r | | 8} n  | r | | 8} n  | | | | f S(	   Ni   i   i   i   i   i   i   i   (    (	   t   rowvalt   colvalt   reldeltat   browxt   bcolxt   row_relt   col_relt   rowxt   colx(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   adjust_cell_addr_biff8  s    
c   	      C  s   |  d ?d @} |  d ?d @} |  d @} | } | rs | rQ | d k rQ | d 8} n  | r | d k r | d 8} q n& | r | | 8} n  | r | | 8} n  | | | | f S(	   Ni   i   i   i?  i    i @  i   i   (    (	   R  R  R  R  R  R  R  R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   adjust_cell_addr_biff_le7  s    
c         C  s|   | d k rB t  d |  | | d ! \ } } t | | | | |  St  d |  | | d ! \ } } t | | | | |  Sd  S(   NiP   s   <HHi   s   <HBi   (   R   R  R  (   t   datat   post   bvR  R  R  R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   get_cell_addr  s      c         C  s   | d k rl t  d |  | | d ! \ } } } }	 t | | | | |  }
 t | |	 | | |  } |
 | f St  d |  | | d ! \ } } } }	 t | | | | |  }
 t | |	 | | |  } |
 | f Sd  S(   NiP   s   <HHHHi   s   <HHBBi   (   R   R  R  (   R  R  R  R  R  R  t   row1valt   row2valt   col1valt   col2valt   res1t   res2(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   get_cell_range_addr  s    &
&c   
      C  s3  y |  j  | } Wn8 t k
 rK t d | t |  j   f d |  j d SX| \ } } } | |  j k r | r t d | | f d |  j n  | d k o | k n s t  d S| |  j k r | r t d | | f d |  j n  d S| d k o| k n r5| r1t d	 | | f d |  j n  d S| d k oL| k n rx| rtt d | f d |  j n  d St |  j  } d | k o| k o| k  n s| rt d | | f d |  j t d | d |  j n  d S|  j | } |  j | }	 d | k o |	 k n s)d S| |	 f S(   Ns:   !!! get_externsheet_local_range: refx=%d, not in range(%d)t   fileis5   /// get_externsheet_local_range(refx=%d) -> addins %ri  is7   /// get_externsheet_local_range(refx=%d) -> external %ris@   /// get_externsheet_local_range(refx=%d) -> unspecified sheet %rii  s<   /// get_externsheet_local_range(refx=%d) -> deleted sheet(s)ii    s.   /// get_externsheet_local_range(refx=%d) -> %rs%   --- first/last sheet not in range(%d)ii(   ii(   ii(   ii(   ii(   ii(   ii(   ii(	   t   _externsheet_infot
   IndexErrort   printt   lent   logfilet   _supbook_addins_inxt   AssertionErrort   _supbook_locals_inxt   _all_sheets_map(
   t   bkt   refxt   blaht   infot   ref_recordxt   ref_first_sheetxt   ref_last_sheetxt   nsheetst   xlrd_sheetx1t   xlrd_sheetx2(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   get_externsheet_local_range  sF      "  'c         C  s
  | d k r0 | r, t  d | d |  j n  d S| d k rL | d k rL d St |  j  } d | k o} | k o} | k  n s | r t  d | | | f d |  j t  d | d |  j n  d S|  j | } |  j | } d | k o | k n s d S| | f S(   Ni    s?   /// get_externsheet_local_range_b57(raw_extshtx=%d) -> externalR  iiis6   /// get_externsheet_local_range_b57(%d, %d, %d) -> ???s%   --- first/last sheet not in range(%d)ii(   ii(   ii(   ii(   ii(   R  R  R  R  (   R  t   raw_extshtxR  R  R  R  R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   get_externsheet_local_range_b57  s$    't   FormulaErrorc           B  s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s   c           B  s>   e  Z d  Z d Z e Z d Z d d d d d  Z d   Z	 RS(   s  
    Used in evaluating formulas.
    The following table describes the kinds and how their values
    are represented.

    .. raw:: html

        <table border="1" cellpadding="7">
        <tr>
        <th>Kind symbol</th>
        <th>Kind number</th>
        <th>Value representation</th>
        </tr>
        <tr>
        <td>oBOOL</td>
        <td align="center">3</td>
        <td>integer: 0 => False; 1 => True</td>
        </tr>
        <tr>
        <td>oERR</td>
        <td align="center">4</td>
        <td>None, or an int error code (same as XL_CELL_ERROR in the Cell class).
        </td>
        </tr>
        <tr>
        <td>oMSNG</td>
        <td align="center">5</td>
        <td>Used by Excel as a placeholder for a missing (not supplied) function
        argument. Should *not* appear as a final formula result. Value is None.</td>
        </tr>
        <tr>
        <td>oNUM</td>
        <td align="center">2</td>
        <td>A float. Note that there is no way of distinguishing dates.</td>
        </tr>
        <tr>
        <td>oREF</td>
        <td align="center">-1</td>
        <td>The value is either None or a non-empty list of
        absolute Ref3D instances.<br>
        </td>
        </tr>
        <tr>
        <td>oREL</td>
        <td align="center">-2</td>
        <td>The value is None or a non-empty list of
        fully or partially relative Ref3D instances.
        </td>
        </tr>
        <tr>
        <td>oSTRG</td>
        <td align="center">1</td>
        <td>A Unicode string.</td>
        </tr>
        <tr>
        <td>oUNK</td>
        <td align="center">0</td>
        <td>The kind is unknown or ambiguous. The value is None</td>
        </tr>
        </table>
    t   ?i    c         C  sF   | d  k	 r | |  _ n  | d  k	 r0 | |  _ n  | |  _ | |  _ d  S(   N(   t   Nonet   kindt   valuet   rankt   text(   t   selft   akindt   avaluet   arankt   atext(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   __init__b  s    	c         C  s,   t  j |  j d  } d | |  j |  j f S(   Ns   ?Unknown kind?s#   Operand(kind=%s, value=%r, text=%r)(   R   t   getR  R  R  (   R  t	   kind_text(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   __repr__l  s    N(
   R  R  t   __doc__R  R  R   R  R  R  R  (    (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR     s   =
c           B  s    e  Z d  Z d   Z d   Z RS(   s  
    Represents an absolute or relative 3-dimensional reference to a box
    of one or more cells.

    The ``coords`` attribute is a tuple of the form::

      (shtxlo, shtxhi, rowxlo, rowxhi, colxlo, colxhi)

    where ``0 <= thingxlo <= thingx < thingxhi``.

    .. note::
      It is quite possible to have ``thingx > nthings``; for example
      ``Print_Titles`` could have ``colxhi == 256`` and/or ``rowxhi == 65536``
      irrespective of how many columns/rows are actually used in the worksheet.
      The caller will need to decide how to handle this situation.
      Keyword: :class:`IndexError` :-)

    The components of the coords attribute are also available as individual
    attributes: ``shtxlo``, ``shtxhi``, ``rowxlo``, ``rowxhi``, ``colxlo``, and
    ``colxhi``.

    The ``relflags`` attribute is a 6-tuple of flags which indicate whether
    the corresponding (sheet|row|col)(lo|hi) is relative (1) or absolute (0).

    .. note::
      There is necessarily no information available as to what cell(s)
      the reference could possibly be relative to. The caller must decide what
      if any use to make of ``oREL`` operands.

    .. note:
      A partially relative reference may well be a typo.
      For example, define name ``A1Z10`` as ``$a$1:$z10`` (missing ``$`` after
      ``z``) while the cursor is on cell ``Sheet3!A27``.

      The resulting :class:`Ref3D` instance will have
      ``coords = (2, 3, 0, -16, 0, 26)``
      and ``relflags = (0, 0, 0, 1, 0, 0).<br>

      So far, only one possibility of a sheet-relative component in
      a reference has been noticed: a 2D reference located in the
      "current sheet".

      This will appear as ``coords = (0, 1, ...)`` and
      ``relflags = (1, 1, ...)``.

    .. versionadded:: 0.6.0
    c         C  sf   | d d !|  _  | d d !|  _ |  j s5 d |  _ n  |  j  \ |  _ |  _ |  _ |  _ |  _ |  _ d  S(   Ni    i   i   (   i    i    i    i    i    i    (   R  t   relflagst   shtxlot   shtxhit   rowxlot   rowxhit   colxlot   colxhi(   R  t   atuple(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s
    	c         C  s?   |  j  s |  j  d k r' d |  j f Sd |  j |  j  f Sd  S(   Ni    s   Ref3D(coords=%r)s   Ref3D(coords=%r, relflags=%r)(   i    i    i    i    i    i    (   R  R  (   R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s    (   R  R  R  R  R  (    (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    r  s   /		c         C  s   |  S(   N(    (   t   x(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   nop  s    c         C  s   |  | S(   N(    (   R  t   y(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_pow  s    c         C  s
   |  | k  S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_lt  s    c         C  s
   |  | k S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_le  s    c         C  s
   |  | k S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_eq  s    c         C  s
   |  | k S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_ge  s    c         C  s
   |  | k S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_gt  s    c         C  s
   |  | k S(   N(    (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   _opr_ne  s    c         C  s,   t  |   } | j d  r( | d  } n  | S(   sN   
    Attempt to emulate Excel's default conversion from number to string.
    s   .0i(   t   strt   endswith(   t   numt   s(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   num2strg  s    t   +t   -R   t   /t   ^t   &t   <s   <=t   =s   >=t   >s   <>c         C  s   |  S(   N(    (   R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   <lambda>  s    c         C  s   |  S(   N(    (   R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s    c         C  s   |  d S(   Ng      Y@(    (   R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s    t   %iZ   c   W   
   C  s   | t  k r d } n  | j } | j } |  j } d } | r t d | | j | | | | f d |  j t | d | d |  j n  | t k r t	 d   n  t
 | }	 d }
 g  } d } d } d } t t d   } t t d   } | j } d   } d   } d	   } | d k r!| g } n  xd |
 k o;| k  n rt | |
  } | d
 @} | d @d ?} | r{| d } n | } t | } |	 | } | rt d |
 | | | | | f d |  j t d | d |  j n  | d k rd | | | f } t |   n  | sd | k o(d k n r=| | |  nd | k oTd k n ri| | |  ne| d k rR| rt d | d |  j n  t |  d k st  | j   } | j   } d } d } d j d | j | k   | j d | j | k   | d | j | k   | j d | j | k   g  }  t t  }! |  |! _ | j t k sa| j t k rmt |! _ n| j t k s&| j t k rn| j t k o| j k n r<| j d  k	 r&| j d  k	 r&t | j  d k st  t | j  d k st  t t | j d | j d  }" t |"  g |! _ q&n | j t k oY| j k n r&t |! _ | j d  k	 r&| j d  k	 r&t | j  d k st  t | j  d k st  t t | j d | j d  }" | j d j  }# | j d j  }$ |# |$ k r#t |" |#  g |! _ q#q&n  | |!  | rt d | d |  j qn|| d k rL| r}t d | d |  j n  t |  d k st  | j   } | j   } d } d } d j d | j | k   | j d | j | k   | d | j | k   | j d | j | k   g  }  t t d  | |   }! | j t k sJ| j t k rVt |! _ n | j t t f k r | j t t f k r t |! _ | j t k s| j t k rt |! _ n  | j d  k	 r | j d  k	 r t | j  d k st  t | j  d k st  | j | j |! _ q n  | |!  | rt d  | d |  j qn| d! k r
| rwt d" | d |  j n  t |  d k st  | j   } | j   } d# } d } d j d | j | k   | j d | j | k   | d | j | k   | j d | j | k   g  }  t t d  | |   }! | j t k sD| j t k rMt }! n| j t k oj| j k n r| j d  k	 r	| j d  k	 r	t | j  d k st  t | j  d k st  t t! | j d | j d  }" t |"  g |! _ q	n | j t k o	| j k n r	t |! _ | j d  k	 r	| j d  k	 r	t | j  d k s_	t  t | j  d k sz	t  t t! | j d | j d  }" | j d j  }# | j d j  }$ |# |$ k r	t |" |#  g |! _ q	q	n  | |!  | rt d$ | d |  j qnd% | k o(
d& k n r@
| | t" |  n| d' k rO
n| d( k rw
| t t# d  t$ d   nW| d) k r<| d* k r
t% | |
 d |  j& d+ d \ }% }& n t' | |
 d d+ d \ }% }& |& |
 } | rt d, | |% f d |  j n  d- |% j( d- d.  d- }' | t t) |% t$ |'   n| d/ k ri| d k sZt  t d0   ne| d1 k ryt* d2 | |
 d |
 d3 ! \ }( }) t+ j, |( d4  }* |( d3 k r|) d d5 } n |( d k rDd3 } | rt d6 | d |  j n  t |  d k st  | d7 } d8 | j }  t t" d  t- |   | d7 <n d3 } | rt d9 |( |* | |) f d |  j qnUd: | k od; k n r| d< k  st  t d=   nd> | k od
 k n r| d> }+ d d d d? g |+ }, t t. t" t" g |+ }- t* d@ dA |+ | |
 d |
 d |, ! \ }. |+ d k r\t/ |.  }. t0 |.  }' nF |+ d k rwt0 |.  }' n+ |+ d k rdx |. }' n d- t1 |. d- }' | t |- |. t$ |'   n t dD |   | d k rt dE |   n  |
 | 7}
 q$n  | d k r| |  n| d k r^d t2 | dF k  }, t* d@ dG |, | |
 d |
 d |, ! d }/ t3 j, |/ d   }0 |0 st dH |/ d |  j | |  q|0 d  \ }1 }2 | rt dI |/ |1 |2 f d |  j n  t |  |2 k st  |2 r2t4 j dJ   | |2 D  }3 dK |1 |3 f }  | |2 3n
 |1 dL }  t t d  t- |   }! | |!  n>| d k rd t2 | dF k  }, t* dM dG |, | |
 d |
 d |, ! \ }2 }/ t5 |2 dN  \ }4 }2 t5 |/ dO  \ }5 }/ | rt dP |/ |2 |5 |4 f d |  j n  t3 j, |/ d   }0 |0 sBt dQ |/ d |  j | |  q|0 d  \ }1 }6 }7 | r~t dR |1 |6 |7 f d |  j n  |6 |2 k o|7 k n st  t |  |2 k st  t |  |2 k st  t4 j dS   | |2 D  }3 dK |1 |3 f }  t t d  t- |   }! |/ d k rU| |2 }8 |8 j t" t. f k rm| rR|8 j t k rRt dT d |  j qRq|8 j dy k r| rR|8 j d  k	 rRt dU d |  j qRq|2 d k r|8 j rt. d |! _ |! _ n` |2 d t2 |8 j  }9 | |9 }: |: j t# k rt" d |! _ |! _ n |: j |: j |! _ |! _ | rt dV d |  j qn |/ dW k r| |2 }8 |8 j t" k rd |8 j k o|2 k  n r| |2 t2 |8 j  }: |: j t# k rt" d |! _ |! _ q|: j |: j |! _ |! _ qqn  | |2 3| |!  n| d k rt* dX | |
 d |
 d ! d d }; | r`t dY |; d |  j n  |  j6 |; }< |< j7 st8 |  |< |; | | d  n  |< j9 s|< j: s|< j; r| r|< j< |  j dZ d[ d\ d] n  t t d   }! | p |< j9 p |< j: p |< j; } | p|< j= } n1 t |< j>  d k s0t  t? j@ |< j> d  }! t$ |! _ |< jA d7 k rm|< j |! _ n  d^ |  jB |< jA |< j f |! _ | rt d_ tC |! j  d |  j n  | |!  n
| d3 k rtD | |
 d | |  }! | rt d` |! d |  j n  |! \ }= }> }? }@ d }A }B d } |A |B d |= |= d |> |> d f }" | rkt da |" d |  j n  t t d   }! | d k rd d |? |? |@ |@ f }C t t t |" |C  g  }! n  | |!  n	| d k rtE | |
 d | |  \ }D }E | rt d` |D |E d |  j n  |D \ }F }G }H }I |E \ }J }K }L }M d }A }B d } |A |B d |F |J d |G |K d f }" | rt da |" d |  j n  t t d   }! | d k rd d |H |L |I |M f }C t t t |" |C  g  }! n  | |!  n| d5 k r	| | |  n| db k rZt* dX | |
 d |
 d ! d }, | rt dc |, d |  j qnB| dd k rv| | |  n&| de k r| | |  n
| d: k r| d k r tD | |
 d | |  }! t* dX | |
 d |
 d ! d }N tF |  |N |  \ }A }B n tD | |
 d | |  }! t* df | |
 d |
 d ! \ }O }P }Q | ret dg |O |P |Q d |  j n  tG |  |O |P |Q |  \ }A }B |! \ }= }> }? }@ |? p|@ }R | p|R } |A |B d |= |= d |> |> d f }" | |A d7 k  O} | r t da |" d |  j n  t t d   }! |R rad d |? |? |@ |@ f }C t |" |C  }S t |! _ tH |  |S dh d |! _ n' t |"  }S t |! _ tI |  |S  |! _ t$ |! _ | d k r|S g |! _ n  | |!  n| d; k r
| d k r-tE | |
 d | |  \ }D }E t* dX | |
 d |
 d ! d }N tF |  |N |  \ }A }B n tE | |
 d | |  \ }D }E t* df | |
 d |
 d ! \ }O }P }Q | rt di |O |P |Q d |  j n  tG |  |O |P |Q |  \ }A }B | |A d7 k  O} |D \ }F }G }H }I |E \ }J }K }L }M |H p|I p|L p|M }R | p|R } |A |B d |F |J d |G |K d f }" | rQt da |" d |  j n  t t d   }! |R rd d |H |L |I |M f }C t |" |C  }S t |! _ tH |  |S dh d |! _ n' t |"  }S t |! _ tI |  |S  |! _ t$ |! _ | d k r|S g |! _ n  | |!  n| d1 k rWd }T t t d   }! | d k rnt* dj | |
 d |
 d ! \ }N }; |; d 8}; |N }U nm t* dk | |
 d |
 de ! \ }N }; |; d 8}; |N }U |N d k r|N d 8}N n  |N d k  r|N d }N n d }T | rt dl |U |N |; |T f d |  j n  |; | k r<| r/t dm d |  j n  d }T } n  |T s| d k ritF |  |N |  \ }A }B q|U d k rdz \ }A }B q|  jJ |N }V |V d3 k rd{ \ }A }B qd| \ }A }B n  |T s|A d7 k  rdp |; |U f }  t t d  t$ |   }! nU|  j6 |; }< |< j7 s(t8 |  |< |; | | d  n  |< j9 sC|< j: sC|< j; r| rh|< j< |  j dZ dq d\ dr n  t t d   }! | p|< j9 p|< j: p|< j; } | p|< j= } n1 t |< j>  d k st  t? j@ |< j> d  }! t$ |! _ |< jA d7 k r|< j |! _ n  d^ |  jB |< jA |< j f |! _ | rJt ds tC |! j  d |  j n  | |!  nE | tK k rvd } | |  n& | rt dt | d |  j n  d } | d k rt du   n  |
 | 7}
 q$W| } | r, tL |  j dv | | | |  t |  d k r t dw d |  j n  t d |  j  n  | | _> t |  d k rS d  | _M n | d | _M | | _= | | _; | | _N d | _7 d  S(}   Ni   s1   ::: evaluate_name_formula %r %r %d %d %r level=%dR  i    t   fouts-   Excessive indirect references in NAME formulac      
   S  s  t  |  d k s t  | j   } | j   } t |  \ } } } } } d j d | j | k   | j d | j | k   | d | j | k   | j d | j | k   g  }	 t | d  | |	  }
 y | | j	 } | | j	 } Wn t
 k
 r | j |
  d  SX| j d  k s| j d  k r+| j |
  d  S| | j  } | | j  } | | |  } | t k ry| rpd n d } n  | |
 _ | j |
  d  S(   Ni   RW   t   (t   )i   i    (   R  R  t   popt   binop_rulest   joinR  R  R   R  R  t   KeyErrort   appendR  R	   (   t   opcdt   stkt   bopt   aopt   argdictt   result_kindR  R  t   symt   otextt   resopt   bconvt   aconvt   bvalt   avalt   result(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   do_binop  s:    	c   
      S  s   t  |  d k s t  | j   } | j } t |  \ } } } } d j | d | j | k   | j d | j | k   | g  }	 | d  k	 r | |  } n  | j	 t
 | | | |	   d  S(   Ni   RW   R  R  (   R  R  R  R  t
   unop_rulesR  R  R  R  R  R   (
   t   opcodeR  R  R  t   valR  R  t   sym1t   sym2R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt
   do_unaryop'  s    	c         S  s    d |  | f } t  |   d  S(   Ns1   ERROR *** Token 0x%02x (%s) found in NAME formula(   R  (   t   op_argt	   oname_argt   msg(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   not_in_name_formula7  s    i   i`   i   i    s9   Pos:%d Op:0x%02x Name:t%s Sz:%d opcode:%02xh optype:%02xhs   Stack =is9   ERROR *** Unexpected token 0x%02x ("%s"); biff_version=%di   i   i   i   s
   tIsect pret    iP   RW   R  R  s   tIsect posti   s	   tList preR&   s
   tList posti   s
   tRange pret   :s   tRange posti   i   i   i   i   iF   t   lenlens      sz=%d strg=%rt   "s   ""i   s   tExtended token not implementedi   s   <BHi   s   ??Unknown??i   t   tAttrSumis   SUM(%s)s)      subop=%02xh subname=t%s sz=%d nc=%02xhi   i   i2   s)   tSheet & tEndsheet tokens not implementedi   i   R  t   BBHdR   R   s   Unhandled opcode: 0x%02xs   Size not set for opcode 0x%02xi(   s    BHs#   *** formula/tFunc unknown FuncID:%ds       FuncID=%d name=%s nargs=%dc         s  s   |  ] } | j  Vq d  S(   N(   R  (   R  t   arg(    (    s+   lib/python2.7/site-packages/xlrd/formula.pys	   <genexpr>$  s    s   %s(%s)s   ()s   <Bi   i   s(      FuncID=%d nargs=%d macro=%d prompt=%ds&   *** formula/tFuncVar unknown FuncID:%ds!       name: %r, min~max args: %d~%dc         s  s   |  ] } | j  Vq d  S(   N(   R  (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pys	   <genexpr>@  s    s   IF testarg kind?s   IF testarg value?s   $$$$$$ IF => constantid   s   <Hs      tgtnamex=%dt   headers   !!! tgtobj has problems!!!t   footers   -----------       --------s   %s!%ss       tName: setting text tos     s      i	   s     %d bytes of cell ref formulai   i   s   <hxxxxxxxxhht   tRef3dt   r1c1t   tArea3ds   <HHs   <hxxxxxxxxHs+      origrefx=%d refx=%d tgtnamex=%d dodgy=%ds   !!!! Self-referential !!!!iifs$   <<Name #%d in external(?) file #%d>>s   !!! bad tgtobj !!!s   ------------------s       tNameX: setting text tos   FORMULA: /// Not handled yet: ts!   Fatal: token size is not positives8   End of formula. level=%d any_rel=%d any_err=%d stack=%r
s   *** Stack has unprocessed args(   R   R   (   i    i   (   ii(   ii(   ifif(O   t   STACK_ALARM_LEVELt   raw_formulat   basic_formula_lent   biff_versionR  t   nameR  R   t   STACK_PANIC_LEVELR   t   szdictR   R   R  R
   R  t	   BYTES_ORDt   onamesR  R  R  R  R  R  R  R   R  R  R  t   tIsectFuncsR    R   R  t   tRangeFuncsR   R%   t	   LEAF_RANKR   t   encodingR   t   replaceR   R   t
   tAttrNamesR  t	   FUNC_RANKR	   t   floatR  R   t   intt	   func_defst   listsept   divmodt   name_obj_listt	   evaluatedR   t   macrot   binaryt   any_errt   dumpt   any_relt   stackt   copyt   deepcopyt   scopet   _sheet_namest   reprR  R  R  R  R   R   t   _externsheet_type_b57t   error_opcodest   fprintfR  t   any_external(W   R  t   nobjt   namexR  t   levelR  t   fmlalenR  R  t   sztabR  R8  R7  R5  RA  t   unk_opndt
   error_opndt   spushR  R  R  t   opR  t   optypet   opxt   onamet   szR  R  R  R  R  R  t   resR  t   relfat   relfbt   strgt   newposR  t   subopt   nct   subnamet   inxt   nbR  R  t   funcxt
   func_attrst	   func_namet   nargst   argtextt   promptR3  t   minargst   maxargst   testargt   respost   chosent   tgtnamext   tgtobjR  R  R  R  t   shx1t   shx2R  R  R  t   rowx1t   colx1t   row_rel1t   col_rel1t   rowx2t   colx2t   row_rel2t   col_rel2R  R  t   raw_shx1t   raw_shx2t   is_relt   ref3dt   dodgyt   origrefxt   exty(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR     s   				&
		 		


# 	""	
  *	
  	""	
 %
  $ 
#
-
.
0 "
"& 		
!	" 
$  
$ " "'$ 			"'$ 			$
	$
  		
!	"				c	   X   
     s  | t  k r d } n   t t t t f k }	 | }
   j } | r t d |  | | |	 |
 | f d   j t |
 d | d   j n  | t	 k r t
 d   n  t | } d } g  } d } d } t t d   } t t d   } | j } d   } d   }    f d	   } | d k r*| g } n  xd | k oD| k  n rt |
 |  } | d
 @} | d @d ?} | r| d } n | } t | } | | } | rt d | | | | | | f d   j t d | d   j n  | d k rd | | | f } t |   n  t | d   @r7| | |  n  | s| d k r| d k r^d } n d } | d k r| | k r| st  t | |
  \ } }  d | |  f }! | t t d  t |!    t t B@sW| | |  qWnod | k od k n r| | |  nC| d k r| r?t d | d   j n  t |  d k sWt  | j   }" | j   }# d }$ d }% d j d |# j |% k   |# j d |# j |% k   |$ d |" j |% k   |" j d |" j |% k   g  }& t t  }' |& |' _ |" j  t k s|# j  t k rt |' _  nt |" j  t k s|# j  t k r9nS |" j  t k oV|# j  k n r^n. |" j  t! k o{|# j  k n rt! |' _  n  | |'  | rWt d  | d   j qWn| d! k rH| rt d" | d   j n  t |  d k st  | j   }" | j   }# d# }$ d }% d j d |# j |% k   |# j d |# j |% k   |$ d |" j |% k   |" j d |" j |% k   g  }& t t d  |% |&  }' |" j  t k s|# j  t k rt |' _  n` |" j  t t! f k r|# j  t t! f k rt |' _  |# j  t! k s|" j  t! k rt! |' _  qn  | |'  | rWt d$ | d   j qWn| d% k r| rst d& | d   j n  t |  d k st  | j   }" | j   }# d' }$ d }% d j d |# j |% k   |# j d |# j |% k   |$ d |" j |% k   |" j d |" j |% k   g  }& t t d  |% |&  }' |" j  t k s@|# j  t k rIt }' n% |" j  t k of|# j  k n rnn  | |'  | rWt d( | d   j qWnd) | k od* k n r| | t" |  n| d+ k rn| d, k r | t t# d  t d   nW| d- k r| d. k r@t$ |
 | d   j% d/ d \ }( }) n t& |
 | d d/ d \ }( }) |) | } | rt d0 | |( f d   j n  d1 |( j' d1 d2  d1 }! | t t( d  t |!   n| d3 k r| d k st  t d4   ne| d5 k r
t d6 |
 | d | d7 ! \ }* }+ t) j* |* d8  }, |* d7 k rQ	|+ d d9 } n |* d! k r	d7 } | r	t d: | d   j n  t |  d k s	t  | d; }# d< |# j }& t t" d  t+ |&  | d; <n d7 } | rWt d= |* |, | |+ f d   j qWnUd> | k o
d? k n r?
| d@ k  s0
t  t dA   ndB | k oV
d
 k n rG| dB }- d d d dC g |- }. t t, t" t" g |- }/ t dD dE |- |
 | d | d |. ! \ }0 |- d k r
t- |0  }0 t. |0  }! nF |- d k r t. |0  }! n+ |- d k rds |0 }! n d1 t/ |0 d1 }! | t |/ d  t |!   n t dH |   | d k rvt dI |   n  | | 7} q-n  | d k r| |  n@| d k rd t0 | dJ k  }. t dD dK |. |
 | d | d |. ! d }1 t1 j* |1 d   }2 |2 s+t dL |1 d   j | |  q|2 d  \ }3 }4 | rdt dM |1 |3 |4 f d   j n  t |  |4 k s|t  |4 rt2 j dN   | |4 D  }5 dO |3 |5 f }& | |4 3n
 |3 dP }& t t d  t+ |&  }' | |'  n| d k rd t0 | dJ k  }. t dQ dK |. |
 | d | d |. ! \ }4 }1 t3 |4 dR  \ }6 }4 t3 |1 dS  \ }7 }1 | rt dT |1 |4 |7 |6 f d   j n  |1 dU k rdt }2 n t1 j* |1 d   }2 |2 st dW |1 d   j | |  q|2 d  \ }3 }8 }9 | rt dX |3 |8 |9 f d   j n  |8 |4 k o3|9 k n s>t  t |  |4 k sVt  t |  |4 k snt  t2 j dY   | |4 D  }5 dO |3 |5 f }& t t d  t+ |&  }' | |4 3| |'  n| d k rt dZ |
 | d | d ! d d }: | rt d[ |: d   j n    j4 |: }; |; j5 d; k r@|; j6 }& n d\   j7 |; j5 |; j6 f }& | rt d] t8 |&  d   j n  t t d  t |&  }' | |'  n;| d7 k rat9 |
 | d | |	 | |  }' | rt d^ |' d   j n  |' \ } }  }< }= |< p	|= }> |> rt! }? n t }? t: | |  |< |= | | |  }& t |? d  t |&  }' | |'  n~
| d k r{t; |
 | d | |	 | |  \ }@ }A | rt d^ |@ |A d   j n  |@ \ }B }C }D }E |A \ }F }G }H }I |B |F d |C |G d f }J |D |H |E |I f }K t< |K  rt! }? n t }? | rAt d_ |J |K d   j n  t= |J |K | | |  }& t |? d  t |&  }' | |'  nd	| d9 k rt> | |  nH	| d` k rt dZ |
 | d | d ! d }. | rt da |. d   j qn| db k rt9 |
 | d | |	 | |  }' d } | r8t d_ |' d   j n  |' \ } }  }< }= |< pS|= }> |> ret! }? n t }? t: | |  |< |= | | |  }& t |? d  t |&  }' | |'  n4| dc k rt; |
 | d | |	 | |  \ }@ }A | rt d^ |@ |A d   j n  |@ \ }B }C }D }E |A \ }F }G }H }I |B |F d |C |G d f }J |D |H |E |I f }K t< |K  rct! }? n t }? | rt d_ |J |K d   j n  t= |J |K | | |  }& t |? d  t |&  }' | |'  n| d> k r| d k r9t9 |
 | d | |	 | |  }' t dZ |
 | d | d ! d }L t?   |L |  \ }M }N n t9 |
 | d | |	 | |  }' t dd |
 | d | d ! \ }O }P }Q | rt de |O |P |Q d   j n  t@   |O |P |Q |  \ }M }N |' \ } }  }< }= |< p|= }> | p|> } |M |N d | | d |  |  d f }J | |M d; k  O} | r?t d_ |J d   j n  t t d   }' |> rd d |< |< |= |= f }K tA |J |K  }R t! |' _  tB   |R | | |  |' _ n' tA |J  }R t |' _  tC   |R  |' _ t |' _ d  |' _D | |'  n| d? k r"| d k r]t; |
 | d | |	  \ }@ }A t dZ |
 | d | d ! d }L t?   |L |  \ }M }N n t; |
 | d | |	  \ }@ }A t dd |
 | d | d ! \ }O }P }Q | rt df |O |P |Q d   j n  t@   |O |P |Q |  \ }M }N | |M d; k  O} |@ \ }B }C }D }E |A \ }F }G }H }I |D p/|E p/|H p/|I }> | p;|> } |M |N d |B |F d |C |G d f }J | rt d_ |J d   j n  t t d   }' |> rd d |D |H |E |I f }K tA |J |K  }R t! |' _  tB   |R | | |  |' _ n' tA |J  }R t |' _  tC   |R  |' _ t |' _ | |'  n| d5 k rd }S t t d   }' | d k rt dg |
 | d | d ! \ }L }: |: d 8}: |L }T nm t dh |
 | d | dc ! \ }L }: |: d 8}: |L }T |L d k r|L d 8}L n  |L d k  r|L d }L n d }S | rt di |T |L |: |S f d   j n  |S s| d k rLt?   |L |  \ }M }N q|T d k rgdu \ }M }N q  jE |L }U |U d7 k rdv \ }M }N qdw \ }M }N n  t }? d  }V |M dl k rt( }?   jF |: }V d1 |V j' d1 d2  d1 }& n |S s|M d; k  rdm |: |T f }& nm   j4 |: }; |; j5 d; k r3|; j6 }& n d\   j7 |; j5 |; j6 f }& | rxt dn t8 |' j  d   j n  t |? |V t |&  }' | |'  nE | tG k rd } | |  n& | rt do | d   j n  d } | d k rt dp   n  | | 7} q-W| } | rvt dq | | | | f d   j t |  d k rct dr d   j n  t d   j  n  t |  d k rd  }W n | d j }W |W S(x   Ni   sR   ::: decompile_formula len=%d fmlatype=%r browx=%r bcolx=%r reldelta=%d %r level=%dR  i    R  s(   Excessive indirect references in formulac      
   S  s   t  |  d k s t  | j   } | j   } t |  \ } } } } } d j d | j | k   | j d | j | k   | d | j | k   | j d | j | k   g  }	 t | d  | |	  }
 | j	 |
  d  S(   Ni   RW   R  R  (
   R  R  R  R  R  R  R  R   R  R  (   R  R  R  R  R  R  R  R  R  R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR  g  s    c   	      S  s   t  |  d k s t  | j   } t |  \ } } } } d j | d | j | k   | j d | j | k   | g  } | j t | d  | |   d  S(   Ni   RW   R  R  (
   R  R  R  R  R  R  R  R  R   R  (	   R  R  R  R  R  R  R	  R
  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR  x  s    c           s.   d |  | t   f } t | d   j d  S(   Ns?   ERROR *** Unexpected token 0x%02x (%s) found in formula type %sR  (   t   FMLA_TYPEDESCR_MAPR  R  (   R  R  R  (   R  t   fmlatype(    s+   lib/python2.7/site-packages/xlrd/formula.pyt   unexpected_opcode  s    i   i`   i   i    s;   Pos:%d Op:0x%02x opname:t%s Sz:%d opcode:%02xh optype:%02xhs   Stack =is9   ERROR *** Unexpected token 0x%02x ("%s"); biff_version=%di   s   <x2Hs   <xHBs   SHARED FMLA at rowx=%d colx=%di   i   i   s
   tIsect prei   R  iP   RW   R  R  s   tIsect posti   s	   tList preR&   s
   tList posti   s
   tRange preR  s   tRange posti   i   i   i   i   iF   R  s      sz=%d strg=%rR  s   ""i   s   tExtended token not implementedi   s   <BHi   s   ??Unknown??i   R  is   SUM(%s)s)      subop=%02xh subname=t%s sz=%d nc=%02xhi   i   i2   s)   tSheet & tEndsheet tokens not implementedi   i   R  R  R   R   s   Unhandled opcode: 0x%02xs   Size not set for opcode 0x%02xi(   s    BHs#   *** formula/tFunc unknown FuncID:%ds       FuncID=%d name=%s nargs=%dc         s  s   |  ] } | j  Vq d  S(   N(   R  (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pys	   <genexpr>[  s    s   %s(%s)s   ()s   <Bi   i   s(      FuncID=%d nargs=%d macro=%d prompt=%di   t
   CALL_ADDINs&   *** formula/tFuncVar unknown FuncID:%ds!       name: %r, min~max args: %d~%dc         s  s   |  ] } | j  Vq d  S(   N(   R  (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pys	   <genexpr>{  s    s   <Hs      tgtnamex=%ds   %s!%ss       tName: setting text tos     s      i	   s     %d bytes of cell ref formulai   i   s   <hxxxxxxxxhhR  R  s   <HHs   <hxxxxxxxxHs+      origrefx=%d refx=%d tgtnamex=%d dodgy=%diifis$   <<Name #%d in external(?) file #%d>>s       tNameX: setting text tos   FORMULA: /// Not handled yet: ts!   Fatal: token size is not positives7   End of formula. level=%d any_rel=%d any_err=%d stack=%rs   *** Stack has unprocessed args(   R   R   (   Rz  i   i   (   ii(   ii(   ifif(H   R  R   R   R   R   R  R  R  R   R!  R   R"  R   R   R  R
   R  R#  R$  R  t   _TOKEN_NOT_ALLOWEDR  R   R'  R   R   R  R  R  R  R  R   R  R   R   R%   R   R(  R   R)  R   R*  R  R+  R	   R,  R  R   R-  R.  R/  R0  R1  R;  R   R<  R=  R  t   cellnamerelR  t   sumt   rangename2drelR  R  R  R    R   R   R  R>  t   addin_func_namesR?  (X   R  t   fmlaRE  Rx  R  R  R  RD  R  R  R  R  RF  R  R8  R7  R5  RG  RH  RI  R  R  Ry  RJ  R  RK  RL  RM  RN  R  t   fmtR  R  R  R  R  R  R  R  RO  RR  RS  RT  RU  RV  RW  RX  R  R  RY  RZ  R[  R\  R]  R^  R3  R_  R`  Rd  Re  R  R  Rr  t   okindR  R  Rh  Ri  Rj  Rk  Rl  Rm  Rn  Ro  R  R  R  Rf  Rg  R  Rp  Rq  Rs  Rt  Ru  Rv  t   ovalueR  (    (   R  Rx  s+   lib/python2.7/site-packages/xlrd/formula.pyR   P  sx   		&
			


#	% 	""
  *	
  	"
 %
  $ 
#
-
.
0 	"&  	" 	 "  	" 	 "'$ 				"'$ 			$
	$
 "	c   4      C  s  | rD t  d | | t |  d |  j t | d | d |  j n  | d k sV t  t | } d } g  }	 d }
 d } |	 j } x
d | k o | k  n r;t | |  } | d @} | d @d ?} | r | d	 } n | } t | } | | } | r't  d
 | | | | | | f d |  j n  | s-d | k oDd k n rt	 d | | d | d ! \ } } | rt  d | | f d |  j qn| d k r | rt  d |	 d |  j n  t |	  d k st  |	 j
   } |	 j
   } | | |  | rt  d |	 d |  j qn| d k r| rKt  d |	 d |  j n  t |	  d k sct  |	 j
   } |	 j
   } t |  d k st  t |  d k st  t t | d | d  } | |  | rt  d |	 d |  j qn,| d k r| rt  d |	 d |  j n  t |	  d k s4t  |	 j
   } |	 j
   } t |  d k sdt  t |  d k s|t  t t | d | d  } | |  | rt  d |	 d |  j qn[| d k rVt	 d | | d | d ! \ } } t j | d  } | d k r!| d d } n d } | rt  d | | | | f d |  j qn | d k r| d k rt | | d  } | | d | d | !} | d } n) t | | d d  d \ } } | | } | rt  d! | | f d |  j qn# | d k rt  d" d |  j d  S| | 7} q n  | d k r<n| d k rd t | d# k  } t	 d$ d% | | | d | d | ! } | rt  d& | d |  j qn`| d k rVd t | d# k  } t	 d' d% | | | d | d | ! \ } } t | d(  \ }  } t | d)  \ }! } | rt  d* | | |! |  f d |  j qn| d+ k rt	 d, | | d | d+ ! }" | rt  d- |" d |  j qnh| d k rt | | d | |  }# | rt  d |# d |  j qn!| d k r1t | | d | |  }# | rt  d |# d |  j qn| d. k rt	 d, | | d | d+ ! d } | rt  d/ | d |  j qn| d0 k rt | | d | d1 d }# d }
 | rt  d2 |# d |  j qn9| d3 k r"t | | d | d1 d }# d }
 | rt  d2 |# d |  j qn| d4 k r9	t	 d, | | d | d+ ! d }$ t | | d+ | |  }# | rt  d |$ |# d |  j n  |# \ } } }% }& |
 p|% p|& }
 t |  |$ |  \ }' }( | |' d5 k  O} |' |( d | | d | | d f }) | r	t  d2 |) d |  j n  | d k r| |) g  qn| d6 k rw
t	 d, | | d | d+ ! d }$ t | | d+ | |  \ }* }+ | r	t  d |$ |* |+ d |  j n  |* \ }, }- }. }/ |+ \ }0 }1 }2 }3 |
 p	|. p	|/ p	|2 p	|3 }
 t |  |$ |  \ }' }( | |' d5 k  O} |' |( d |, |0 d |- |1 d f }) | rX
t  d2 |) d |  j n  | d k r| |) g  qn | d k r
t	 d | | d | d ! \ }$ }" | rt  d7 |$ |" f d |  j qn; | t k r
d } n& | rt  d8 | d |  j n  d } | d k r.t  d" d |  j d  S| | 7} q W| rt  d9 |
 | |	 f d |  j t |	  d k rt  d: d |  j qn  d  S(;   NR   R  i    R  iP   i   i`   i   i    s9   Pos:%d Op:0x%02x Name:t%s Sz:%d opcode:%02xh optype:%02xhi   i   s   <HHs     i   s	   tList pres
   tlist posti   s
   tRange pres   tRange posti   s
   tIsect pres   tIsect posti   s   <BHi   s   ??Unknown??i   s)      subop=%02xh subname=t%s sz=%d nc=%02xhi   iF   R  s      sz=%d strg=%rs   **** Dud size; exiting ****i(   R  s    BHs      FuncID=%ds   <Bi   i   s(      FuncID=%d nargs=%d macro=%d prompt=%di   s   <Hs      namex=%di	   s     %d bytes of cell ref formulai   R  s      i   i   ii   s      refx=%d namex=%ds   FORMULA: /// Not handled yet: ts.   End of formula. any_rel=%d any_err=%d stack=%rs   *** Stack has unprocessed args(   R  R  R  R   R  R"  R  R#  R$  R   R  R  R&  R%  R*  R  R   R-  R0  R  R  R  R?  (4   R  R  RE  R  R  R  t   isnameRF  R  R8  R7  R5  RI  RJ  R  RK  RL  RM  RN  R  R  R  R  R  RT  RU  RV  RR  RS  RX  RY  R\  R^  R3  RC  RO  R  R  R  Rf  Rg  R  R  R  Rh  Ri  Rj  Rk  Rl  Rm  Rn  Ro  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR   ^  sR   "
	


&$ "   
  
 $ )
 #
* 0 )   "   " $  " $  $ #	 c         C  se   | d  k r t } n  | s9 | r- d |  d Sd |  d S| rQ |  rM d |  Sd Sd | |  d d S(   Ns   R%di   s   $%ds   R[%d]R`   s   %di   (   R  t   True(   R  t   rowxrelR  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt
   rownamerel  s    	c         C  se   | d  k r t } n  | s; | r- d |  d Sd t |   S| rS |  rO d |  Sd St | |  d  S(   Ns   C%di   t   $s   C[%d]t   Ci   (   R  R  R   (   R  t   colxrelR  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt
   colnamerel  s    	c         C  s   d t  |  |  d f S(   s(   Utility function: ``(5, 7)`` => ``'H6'``s   %s%di   (   R   (   R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR     s    c         C  s4   | r d |  d | d f Sd t  |  |  d f S(   s*   Utility function: ``(5, 7)`` => ``'$H$6'``s   R%dC%di   s   $%s$%d(   R   (   R  R  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR   "  s    c   	      C  s   | r | r t  |  | |  S| r0 | d  k sB | rK | d  k rK t } n  t | | | |  } t |  | | |  } | r | | S| | S(   N(   R   R  R  R  R  (	   R  R  R  R  R  R  R  t   ct   r(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR|  (  s    $	c         C  sG   d } |  d k r | |  St  |  d  \ } } | | d | | Sd S(   s6   Utility function: ``7`` => ``'H'``, ``27`` => ``'AB'``t   ABCDEFGHIJKLMNOPQRSTUVWXYZi   i   i   N(   R0  (   R  t   alphabett   xdiv26t   xmod26(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR   4  s
    c         C  sh   | r
 d S| |  d k r: | | d k r: t  |  | |  Sd t  |  | |  t  | d | d |  f S(   s(    ``(5, 20, 7, 10)`` => ``'$H$6:$J$20'`` Ni   s   %s:%s(   R   (   t   rlot   rhit   clot   chiR  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   rangename2d=  s
     c      
   C  s   |  \ } } } } | \ }	 }
 } } |	 s0 |
 rE | d  k rE t } n  | sQ | rf | d  k rf t } n  d t | | |	 | | | |  t | d | d |
 | | | |  f S(   Ns   %s:%si   (   R  R  R|  (   t   rlo_rhi_clo_chit   rlorel_rhirel_clorel_chirelR  R  R  R  R  R  R  t   rlorelt   rhirelt   clorelt   chirel(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR~  E  s    		c         C  s1   | j  } d t |  | d   t | d d !  f S(   s   
    Utility function:
    ``Ref3D(1, 4, 5, 20, 7, 10)`` =>
    ``'Sheet2:Sheet3!$H$6:$J$20'``
    (assuming Excel's default sheetnames)
    s   %s!%si   i   (   R  t
   sheetrangeR  (   t   bookRs  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR   R  s    	c   	      C  sj   | j  } | j } t |  | d  | d   } t | d d !| d d !| | |  } | s\ | Sd | | f S(   s   
    Utility function:
    ``Ref3D(coords=(0, 1, -32, -22, -13, 13), relflags=(0, 0, 1, 1, 1, 1))``

    In R1C1 mode => ``'Sheet1!R[-32]C[-13]:R[-23]C[12]'``

    In A1 mode => depends on base cell ``(browx, bcolx)``
    i   i   s   %s!%s(   R  R  t   sheetrangerelR~  (	   R  Rs  R  R  R  R  R  t   shdesct   rngdesc(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR   ^  s    			&c         C  s   | d k r |  | } n2 i d d 6d d 6d d 6d d	 6j  | d
 |  } d | k ro d | j d d  d Sd | k r d | d S| S(   Ni    s   ?internal; any sheet?is   internal; deleted sheetis   internal; macro sheetis   <<external>>is
   ?error %d?t   's   ''R  (   R  R)  (   t   shnamest   shxt   shname(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   quotedsheetnameo  s    
c         C  sM   |  j    } t | |  } | | d k rI | d t | | d  7} n  | S(   Ni   R  (   t   sheet_namesR  (   R  t   slot   shiR  R  (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s
    c         C  sl   | \ } } | \ } } | r6 | r6 t  |  | |  S| d k oQ | d k n rb | rb | sh t  d S(   Ni    i   RW   (   R  R  (   R  t   sranget	   srangerelR  R  t   slorelt   shirel(    (    s+   lib/python2.7/site-packages/xlrd/formula.pyR    s    2(v   R  t
   __future__R    R9  t   operatort   oprt   structR   t   biffhR   R   R   R   R   R   t   timemachinet   __all__R   R   R   R   R   R   t   ALL_FMLA_TYPESRw  R  R{  R	   R
   R%   R   R   R   R   R   R   R/  t   sztab0t   sztab1t   sztab2t   sztab3t   sztab4R"  R$  R.  R*  t   setR?  t   mint   maxR&  R%  R  R  R  R  R  R  R  R  t	   ExceptionR  t   objectR   R  R    t   tAddt   tSubt   tMult   tDivt   tPowert   tConcatt   ranget   tLTt   tLEt   tEQt   tGEt   tGTt   tNER  R  R  R  R  R  R  R  R  R,  t   _arith_argdictt   _cmp_argdictt   _strg_argdictt   addt   subt   mult   truedivR  R  R'  R+  R  R!  R   R   R   R  R  R   R   R|  R   R  R~  R   R   R  R  R  (    (    (    s+   lib/python2.7/site-packages/xlrd/formula.pyt   <module>	   sP  .




!	&\A!										  c	  						