_e[c @s7ddlmZddlZejjdkr=eefZn eZeZ dddddd d d d d f Z dZ dZ dZ dZdZdZeZdZdZdZdZdZdZddlZddlZddlZddlZejdZi dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d+d,6Zd-Z d.e!fd/YZ"d0e!fd1YZ#e$d2kr3ddl%j&Z&e&j&Z'ddlZe(ej)d3Z*e*j+Z,e#e'Z-e-j.e,ej)d3x/e/r/e-j0Z1e1 rPne-j2e1fGHqWndS(4i(t generatorsNitCPP_IDt CPP_INTEGERt CPP_FLOATt CPP_STRINGtCPP_CHARtCPP_WSt CPP_COMMENT1t CPP_COMMENT2t CPP_POUNDt CPP_DPOUNDs+-*/%|&~^<>=!?()[]{}.,;:\'"cCs"|jj|jjd7_|S(s\s+s (tlexertlinenotvaluetcount(tt((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytt_CPP_WS!ss\#s\#\#s[A-Za-z_][\w_]*cCs|S(sA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)((R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR-ss?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?cCs"|jj|jjd7_|S(s\"([^\\\n]|(\\(.|\n)))*?\"s (R R R R(R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt t_CPP_STRING7scCs"|jj|jjd7_|S(s(L)?\'([^\\\n]|(\\(.|\n)))*?\'s (R R R R(R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt t_CPP_CHAR=scCsJ|jjd}|jj|7_d|_|r=d|nd|_|S(s(/\*(.|\n)*?\*/)s Rt (R RR R ttype(Rtncr((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytt_CPP_COMMENT1Cs  cCsd|_d|_|S(s (//.*?(\n|$))Rs (RR (R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytt_CPP_COMMENT2Ls cCs4|jd|_|jd|_|jjd|S(Nii(R RR tskip(R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytt_errorRss\?\?[=/\'\(\)\!<>\-]t#t=s\t/t^t't[t(t]t)t|t!t{tt~t-cCstjd|S(NcSst|jdS(Ni(t _trigraph_reptgroup(tg((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt|s(t _trigraph_pattsub(tinput((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyttrigraph{stMacrocBseZdedZRS(cCsG||_||_||_||_|r:|d|_nd|_dS(Ni(tnameR targlisttvariadictvarargtNonetsource(tselfR4R R5R6((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt__init__s    N(t__name__t __module__R8tFalseR;(((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR3st PreprocessorcBseZddZdZdZdZdZdZdZ dZ dZ d Z dd Z d Zdd Zd ZdZdZdidZdZRS(cCs|dkrtj}n||_i|_g|_g|_|jtj}|j dtj d||j dtj d|d|_ dS(Ns __DATE__ "%s"s%b %d %Ys __TIME__ "%s"s%H:%M:%S( R8tlexR tmacrostpatht temp_pathtlexprobettimet localtimetdefinetstrftimetparser(R:R ttm((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR;s        cCsMg}|jj|x0trH|jj}|s8Pn|j|qW|S(N(R R1tTruettokentappend(R:ttextttokensttok((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyttokenizes cCsd|||fGHdS(Ns%s:%d %s((R:tfiletlinetmsg((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyterrorsc Cs|jjd|jj}| s5|jdkr=dGHn |j|_|jjd|jj}| st|jdkrdGHn|j|_t|j|_|jjd|jj}| s|jdkrdGHn |j|_ |jjd|jj}| s(|jdkr4d|_ n |j|_ |jjd |jj}| su|jd krd|_ d GHn |j|_ |j |j f|_ d d d ddddddg }xO|D]G}|jj||jj}| s |j|krd|GHqqWdS(Nt identifiers"Couldn't determine identifier typet12345i90sCouldn't determine integer types "filename"sCouldn't determine string types s s%Couldn't determine token for newlinesR&R(Rs##s\R R"t,t.s,Unable to lex '%s' required for preprocessor(R R1RLR Rtt_IDtintt t_INTEGERtt_INTEGER_TYPEtt_STRINGR8tt_SPACEt t_NEWLINEtt_WS(R:RPtcharstc((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyRDsD       ! cCs|jj|dS(N(RBRM(R:RB((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytadd_path sc csQ|jj}g|jD]}|j^q}x~tt|D]j}|d}xW||jdr|t|kr||d |||||j }|sPn|j ||j |jkrd|jkr|Vg}qqW|rM|VndS(Nis\its (R tclonet splitlinestrstriptxrangetlentendswithtjoinR1R RKRLRMRRaR ( R:R1R@txtlinestitjt current_lineRP((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt group_liness,% (      ! cCsd}x6|t|kr>||j|jkr>|d7}q W||4t|d}x0|dkr||j|jkr|d8}qYW||d3|S(Nii(RjRRa(R:RORo((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt tokenstrip:s+% c Csg}g}g}d}t|}d}x0||kr\||j|jkr\|d7}q-W||kr||jdkr|j|dn*|j|j|djddggfS|d7}x||kr||}|jdkr|j||d7}n|jdkrx|d8}|dkrh|rW|j|j||j|n|d||fS|j|nX|jdkr|dkr|j|j||j|dg}n |j||d7}qW|j|j|djddggfS( NiiR sMissing '(' in macro argumentsR"RXisMissing ')' in macro arguments( RjRRaR RMRUR9R Rs( R:t tokenlisttargst positionst current_argtnestingttokenlenRoR((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt collect_argsVsD %         cCsg|_g|_g|_d}xv|t|jkr|j|j|jkr|j|j|jkr|jj|j|j}|dkr |j|djdkr t j |j||j|<|j |j|_|j|d=|jj ||dfq$q|dkrb|j|djdkrb|jj d||df|j|d=q$q|dt|jkr|j|djdkr|jj d||f|d7}q$q|jj d||fn|j|jdkr|j r|dkr|j|djdkr|dt|jkr|j|dj|jkr|j|dj|j kr|jj |dqn|d7}q$W|jjdd d tdS( NiiRs##RcteRXtkeycSs|dS(Ni((Rm((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR.streverse(tpatcht str_patchtvar_comma_patchRjR RRZR5tindextcopyR^RMR6R7tsortRK(R:tmacroRotargnum((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt macro_prescans:   2&&3 /6c Csg|jD]}tj|^q }i}x|jD]\}}||krddjg||D]}|j^qajdd||R6RR8RKR~t expand_macros( R:RRut_xtrept str_expansionRRoRmt comma_patchtexpandedtptypet_i((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytmacro_expand_argss.% @     "cCs|dkri}nd}x|t|kr||}|j|jkr|j|jkr|j|krt||j<|j|j}|js|jg|jD]}t j |^q|}x|D]}|j |_ qW||||d+|t|7}nq|d} x6| t|krG|| j|j krG| d7} qW|| jdkrv|j || \} } } |j rt| t|jkr|j|j|j d|jt|jf| | }qv|j rt| t|jdkrt|jdkrK|j|j|j d|jt|jdfn3|j|j|j d|jt|jdf| | }qv|j rt| t|jdkr| jgq|| | t|jd| | d!| t|jd<| t|j3n|j|| } |j| |} x| D]}|j |_ q<W| ||| | +|t| 7}n||j=qq|jdkr|j|_|j|j |_qn|d7}qW|S( NiiR sMacro %s requires %d argumentsis(Macro %s must have at least %d argumentss'Macro %s must have at least %d argumentt__LINE__(R8RjRRZR RARKR5RRR RaRzR6RUR9RMRR\R](R:RORRoRtmRtexR{RpttokcountRuRvRtr((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyRs\   !  1  +%/ (63  ;   c Cs"d}x{|t|kr||j|jkrv||jdkrv|d}t}d}x|t|kr:||j|jkr|d7}q]n||j|jkr||j|jkrd}nd}|s-Pq-nP||jdkrt}n4||jdkrPn|j|j ||j d|d7}q]W|j ||_|j |||_||d|d5n|d7}q W|j |}xt|D]\}}|j|jkrtj|||<|j ||_|j d||_q|j|j krtj|||RaRARKRUR9R R\R]Rt enumerateRtstrRlRtevalt Exception( R:RORoRpt needparentresultRRmtexpr((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytevalexpr*s^)    #+  ccst|}|j|}|s*d}n|jd|||_g}t}t}g}x>|D]6} x0t| D]"\} } | j|jkrvPqvqvW| j dkrx?| D]7} | j|jkrd| j kr|j | qqW|j | | d} | r-| dj } |j | d}n d} g}| dkr|rx|j |D] } | Vq[Wg}|j|qq| dkr|rx|j |D] } | VqWg}|j d }x|j|D] } | VqW||j d <||_qq| d krL|rx|j |D] } | Vq$Wg}|j|qq| d kr|j ||f|r|dj |j krt}t}qt}qq| d kr|j ||f|r|dj |j krt}t}qt}qq| d krM|j ||f|r|j|}|sAt}t}qJt}qq| dkr|r|ddr|r|t}q|s|j|}|rt}t}qqqq|j|j| djdq| dkr9|r|ddr6|rt}q|st}t}qq6q|j|j| djdq| dkr|r`|j\}}q|j|j| djdqqc|rc|j| qcqcWx|j |D] } | VqWg}dS(NRes __FILE__ "%s"Rs iiRGtincludet__FILE__tundeftifdeftifndeftiftelifisMisplaced #eliftelsesMisplaced #elsetendifsMisplaced #endif(R2RrRGR9RKR>RRRaR RMRsRRARRRRUR tpoptextend(R:R1R9RRntchunktenablet iftriggertifstackRmRoRPt dirtokensR4RutoldfileR((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytparsegenes     !                            c cs|s dS|r=|djdkrK|dj|jkrK|j|}n|djdkrd}x@|t|kr||jdkrPn|d7}qgWdGHdSdjg|d|!D]}|j^q}|jdg|j}q=|dj|jkr1|djdd!}|jdg|j}q=dGHdSnx|D]}tjj||}y}t |d j }tjj |} | r|jj d| nx|j ||D] } | VqW| r|jd=nPWqDtk rqDXqDWd |GHdS( NiR&iR(sMalformed #include <...>ReisMalformed #include statementRsCouldn't find '%s'(R RR^RRjRlRBRCtostopentreadtdirnametinsertRtIOError( R:RORoRmtfilenameRBtptinametdatatdnameRP((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyRsF),    cCset|tr!|j|}n|}y!|d}t|dkrS|d}nd}|st|jg}||j|jRlRRKRZRt LookupError(R:ROtlinetokR4tmtypeRRRuRvR6taRtastrtmvalueRoRm((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyRGsl   +  &(--2   cCs3|dj}y|j|=Wntk r.nXdS(Ni(R RAR(R:ROtid((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR_s   cCs"||_|j|||_dS(N(tignoreRRI(R:R1R9R((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pytparseks cCsXy6x/tr4t|j}|j|jkr|SqWWntk rSd|_dSXdS(N(RKtnextRIRRt StopIterationR8(R:RP((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyRLts    N(R<R=R8R;RQRURDRdRrRsRzRRRRRRRGRRRL(((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyR?s$   < !  5 + 2 B ; 1 F  t__main__i(3t __future__Rtsyst version_infotmajorRtunicodeRtrangeRiROtliteralsRt t_CPP_POUNDt t_CPP_DPOUNDtt_CPP_IDRt t_CPP_INTEGERt t_CPP_FLOATRRRRRtreRREtos.pathRtcompileR/R+R2tobjectR3R?R<tply.lexR@R RtargvtfRR1RRRKRLRPR9(((s6/tmp/pip-install-KP2Jbq/pycparser/pycparser/ply/cpp.pyt sh $