î
nÐR\e  ã               @   sÔ  d  d l  m Z d d l m Z m Z m Z m Z d d l m	 Z	 d  d l
 m Z m Z m 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 e e	 j f e e	 j f e e	 j f e e	 j  f e e	 j! f e e	 j" f e e	 j# f e e	 j$ f e e	 j% f e e	 j& f e e	 j' f e e	 j( f e e	 j) f e e	 j* f f Z+ e d d j, d d „  e+ Dƒ ƒ d e e ƒ Z- d g d d „  e+ Dƒ Z. i e	 j/ d 6e	 j0 d 6e	 j1 d 6e	 j2 d 6e	 j3 d  6e	 j4 d! 6e	 j5 d" 6e	 j6 d# 6e	 j7 d$ 6e	 j8 d% 6e	 j9 d 6e	 j: d 6e	 j; d& 6e	 j< d' 6e	 j= d( 6e	 j> d) 6Z? Gd* d+ „  d+ e ƒ Z@ eA d, k rÐy% x e@ d- ƒ D] ZB eC eB ƒ qƒWWqÐe k
 rÌZD z eC d. eD ƒ WYd d ZD [D XqÐXn  d S)/é    )Úprint_functioné   )ÚEOFÚCommonTokenÚTokenStreamÚTokenStreamException)ÚExcelFormulaParser)ÚcompileÚ
IGNORECASEÚVERBOSEz\d+\bzÄ
    (?:
        (?: \d* \. \d+ ) # .1 .12 .123 etc 9.1 etc 98.1 etc
        |
        (?: \d+ \. ) # 1. 12. 123. etc
    )
    # followed by optional exponent part
    (?: [Ee] [+-]? \d+ ) ?
    z"(?:[^"]|"")*"z"[Rr]0*[1-9][0-9]*[Cc]0*[1-9][0-9]*z\$?[A-I]?[A-Z]\$?0*[1-9][0-9]*zTRUE\bzFALSE\bzIF\bzCHOOSE\bz	\w[\.\w]*z'(?:[^']|'')*'z<>z>=z<=ú(z)|(c             c   s   |  ] } | d  Vq d S)r   N© )Ú.0Úir   r   ú:/var/www/dbchiro/venv/build/xlwt/xlwt/ExcelFormulaLexer.pyú	<genexpr>4   s    r   ú)Nc             C   s   g  |  ] } | d  ‘ q S)r   r   )r   r   r   r   r   ú
<listcomp>7   s   	 r   ú=ú<ú>ú+ú-Ú*ú/ú:ú;ú,ú&ú%ú^ú!c               @   sg   e  Z d  Z d d „  Z d d „  Z d d „  Z d d d	 „ Z d
 d „  Z d d „  Z d d „  Z	 d S)ÚLexerc             C   s)   | d  d  … |  _  d |  _ d |  _ d  S)Nr   )Ú_textÚ_posZ_line)ÚselfÚtextr   r   r   Ú__init__N   s    	zLexer.__init__c             C   s   t  |  j ƒ |  j k S)N)Úlenr#   r$   )r%   r   r   r   ÚisEOFS   s    zLexer.isEOFc             C   s   |  j  |  j S)N)r#   r$   )r%   r   r   r   Úcurr_chV   s    zLexer.curr_chr   c             C   s   |  j  | 7_  d  S)N)r$   )r%   Únr   r   r   Únext_chY   s    zLexer.next_chc             C   s   |  j  ƒ  d k S)Nz 	
)r*   )r%   r   r   r   Úis_whitespace\   s    zLexer.is_whitespacec             C   sj   t  j |  j |  j ƒ } | s" d  S| j d ƒ |  _ t d t | j d | j d ƒ d | j	 d ƒ d ƒ S)Nr   Útyper&   Úcolr   )
Ú_reÚmatchr#   r$   ÚendÚTokÚ_toktypeÚ	lastindexÚgroupÚstart)r%   Úmr   r   r   Úmatch_pattern_   s
    zLexer.match_patternc             C   sÍ   x' |  j  ƒ  r) |  j ƒ  r) |  j ƒ  q W|  j  ƒ  rC t d t ƒ S|  j ƒ  } | rY | S|  j ƒ  } y t | } Wn1 t k
 r¦ t	 d |  j ƒ  |  j
 f ƒ ‚ Yn X|  j ƒ  t d | d | d |  j
 ƒ S)Nr.   z Unexpected char %r in column %u.r&   r/   )r)   r-   r,   r3   r   r9   r*   Úsingle_char_lookupÚKeyErrorr   r$   )r%   ÚtÚteÚtyr   r   r   Ú	nextTokenf   s    !
zLexer.nextTokenN)
Ú__name__Ú
__module__Ú__qualname__r'   r)   r*   r,   r-   r9   r?   r   r   r   r   r"   M   s   r"   Ú__main__zN 1.23 456 "abcd" R2C2 a1 iv65536 true false if choose a_name 'qname' <> >= <= zerror:)EÚ
__future__r   Zantlrr   r   r3   r   r   Ú r   Úrer	   Z	recompiler
   r   Zint_const_patternZflt_const_patternZstr_const_patternZref2d_r1c1_patternZref2d_patternZtrue_patternZfalse_patternZ
if_patternZchoose_patternZname_patternZquotename_patternZ
ne_patternZ
ge_patternZ
le_patternZ	NUM_CONSTZ	INT_CONSTZ	STR_CONSTZ
REF2D_R1C1ZREF2DZ
TRUE_CONSTZFALSE_CONSTZFUNC_IFZFUNC_CHOOSEÚNAMEZ	QUOTENAMEZNEZGEZLEZpattern_type_tuplesÚjoinr0   r4   ZEQÚLTÚGTZADDZSUBZMULZDIVÚCOLONZ	SEMICOLONÚCOMMAZLPZRPZCONCATÚPERCENTZPOWERZBANGr:   r"   r@   r<   ÚprintÚer   r   r   r   Ú<module>   sv   "	!














-