K i LddlZejjdkreefZneZeZdZdZ dZ dZ dZ dZ d ZeZd Zd Zd Zd ZdZdZddlZddlZddlZddlZej6dZdddddddddd ZdZGddeZ GddeZ!e"d k(rddl#m$Z$e$jHZ%ddlZe&ejNd!Z(e(jSZ*e!e%Z+e+jYe*ejNd! e+j[Z.e.sye/e+j`e.'y)"N) CPP_ID CPP_INTEGER CPP_FLOAT CPP_STRINGCPP_CHARCPP_WS CPP_COMMENT1 CPP_COMMENT2 CPP_POUND CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"cv|jxj|jjdz c_|S)z\s+ lexerlinenovaluecountts W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pycparser/ply/cpp.pyt_CPP_WSr&GGNNaggmmD))N Hz\#z\#\#z[A-Za-z_][\w_]*c|S)zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)rs rrr+s Hrz?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?cv|jxj|jjdz c_|S)z\"([^\\\n]|(\\(.|\n)))*?\"rrrs r t_CPP_STRINGr5rrcv|jxj|jjdz c_|S)z(L)?\'([^\\\n]|(\\(.|\n)))*?\'rrrs r t_CPP_CHARr ;rrc|jjd}|jxj|z c_d|_|r d|z|_|Sd|_|S)z(/\*(.|\n)*?\*/)rr  )rrrrtype)rncrs rt_CPP_COMMENT1r%AsL ''-- CGGNNcN AFsqw H9\-]#\^[]|{}~) =/'()!<>-c0tjd|S)Nc6t|jdSN) _trigraph_repgroup)gs rztrigraph..zs}QWWYr]'Cr) _trigraph_patsub)inputs rtrigraphrJys   CE JJrceZdZddZy)MacroNcb||_||_||_||_|r |d|_d|_yrA)namerarglistvariadicvarargsource)selfrNrrOrPs r__init__zMacro.__init__s3     !"+DK r)NF)__name__ __module__ __qualname__rTrrrrLrLsrrLceZdZddZdZdZdZdZdZdZ d Z d Z d Z dd Z d ZddZdZdZdZdifdZdZy) PreprocessorNcV|tj}||_i|_g|_g|_|j t j}|jdt jd|z|jdt jd|zd|_ y)Nz __DATE__ "%s"z%b %d %Yz __TIME__ "%s"z%H:%M:%S) lexrmacrospath temp_pathlexprobetime localtimedefinestrftimeparser)rSrtms rrTzPreprocessor.__init__s =IIE     ^^  % j(DDE % j(DDE rcg}|jj| |jj}|s |S|j|1N)rrItokenappend)rStexttokenstoks rtokenizezPreprocessor.tokenizesK **""$C  MM# rc&td|||fzy)Nz%s:%d %s)print)rSfilelinemsgs rerrorzPreprocessor.errors jDc?*+rc(|jjd|jj}|r|jdk7r t dn|j |_|jjd|jj}|rt|jdk7r t dn+|j |_t |j|_ |jjd|jj}|r|jdk7r t dn|j |_ |jjd|jj}|r|jdk7rd|_ n|j |_ |jjd |jj}|r|jd k7rd|_ t d n|j |_ |j|jf|_ gd }|D]W}|jj||jj}|r|j|k7sJt d |zYy) N identifierz"Couldn't determine identifier type12345i90zCouldn't determine integer typez "filename"zCouldn't determine string typez rz%Couldn't determine token for newlines) r<r=r-##r.r9r:,.z,Unable to lex '%s' required for preprocessor)rrIrhrror#t_IDint t_INTEGERt_INTEGER_TYPEt_STRINGt_SPACE t_NEWLINEt_WS)rSrlcharscs rr_zPreprocessor.lexprobes &jj cii</ 6 7DI !jj c#))n- 3 4 XXDN"&syy/D  (jj cii>1 2 3HHDM jj cii4'DL88DL jj cii4'!DN 9 : XXDN\\4>>2 9 JA JJ  Q **""$C#))q.DqHI  Jrc:|jj|yrg)r]ri)rSr]s radd_pathzPreprocessor.add_path s rc#K|jj}|jDcgc]}|j}}t t |D]j}|dz}||j ds|t |ks,||dd||z||<d||<|dz }||j ds\|t |kr?ldj|}|j|d|_ g} |j}|sn>|j||j|jvrd|jvr|g}R|r|yycc}ww)Nr*r.rBr)rclone splitlinesrstripxrangelenendswithjoinrIrrhrir#rr) rSrIr[xlinesij current_linerls r group_lineszPreprocessor.group_linessQjj %*%5%5%7888E # A!A(##D)q3u:~ 8CR=q1aaQ(##D)q3u:~  %  %  #))+C    $xx499$):""!    -9s)-EE2E9E/E8EBEc|d}|t|krJ||j|jvr/|dz }|t|kr||j|jvr/|d|=t|dz }|dk\rA||j|jvr&|dz}|dk\r||j|jvr&||dzd=|Sr))rr#r)rSrkrs r tokenstripzPreprocessor.tokenstrip8s #f+o&)..DII"= FA#f+o&)..DII"= 2A2J KM1f4994 FA1f4994 1Q34L rcg}g}g}d}t|}d}||krA||j|jvr&|dz }||kr||j|jvr&||kr'||jdk(r|j |dzn/|j |j |djddggfS|dz }||kr||}|jdk(r|j ||dz }n|jdk(rW|dz}|dk(r;|r1|j |j||j ||dz||fS|j |n\|jdk(r<|dk(r7|j |j||j |dzg}n|j ||dz }||kr|j |j |djddggfS) Nr*rr9zMissing '(' in macro argumentsr:rxrBzMissing ')' in macro arguments) rr#rrrirsrRrr) rS tokenlistargs positions current_argnestingtokenlenrrs r collect_argszPreprocessor.collect_argsTs  y> 8|)A,"3"3tyy"@ FA8|)A,"3"3tyy"@ Ly|11S8   QqS ! JJt{{9Q<#6#67W Xb"9  Q(l! Aww#~""1%1 C1 a<" DOOK$@A!((+Q3tI--""1%CGqL DOOK89  1% ""1% FA'(l, 4;;y}334TU"Rxrczg|_g|_g|_d}|t|jkr|j|j |j k(r|j|j|jvr|jj|j|j}|dkDr|j|dz jdk(rtj|j||j|<|j|j|_|j|dz =|jj||dz f;|dkDrR|j|dz jdk(r3|jjd||dz f|j|dz =|dzt|jkrD|j|dzjdk(r%|jjd||f|dz }|jjd||fn|j|jdk(r|jr|dkDr|j|dz jdk(r|dzt|jkrp|j|dzj |j k(rG|j|dzj|jk(r|jj|dz |dz }|t|jkr|jjdd y) Nrr*r-rwrerxc |dS)Nr)rs rrFz,Preprocessor.macro_prescan..s qtrT)keyreverse)patch str_patchvar_comma_patchrrr#rzrOindexcopyr~rirPrQsort)rSmacrorargnums r macro_prescanzPreprocessor.macro_prescans  " #ekk""{{1~""dii/EKKN4H4HEMM4Y,,U[[^-A-ABq5U[[1-33s:%)YYu{{1~%>EKKN*.--EKKN' AaC(OO**F1Q3<8!e AaC 0 6 6$ >KK&&F1Q3'78 AaC(sc%++..5;;qs3C3I3IT3QKK&&F1~6FAKK&&F1~6Q%%->>q1u5;;qs3C3I3IS3PA#U[[!11 AaC8H8M8MQUQZQZ8ZQqS)//5<<?))0015 FA7#ekk""8  ^D9rc|jDcgc]}tj|}}i}|jD]s\}}||vrBddj||Dcgc]}|jc}zj dd||<tj||||<||||_ud} |j r|ds|j D] }d||<d} i} |jD]C\} }}| dk(r |||||d z| d k(s|| vr|j||| |<| ||||d zE| r|D cgc]} | s|  }} |Scc}wcc}wcc} w) Nz"%s"rr.z\\FrBTrr*r) rrrrreplacerPrr expand_macros) rSrr_xrep str_expansionrrr comma_patchexpandedptype_is rmacro_expand_argszPreprocessor.macro_expand_argss',{{3tyy}33  1IFA]*)/"''DQWL:Yq177:Y2Z)Z(c(cdhio(p f%YYs1v&CF(0CFL  1 >>$r(** #A"  # %  . E61|!&\Aac #)'+'9'9$v,'GHV$%f-Aac  .  #*"r2*C* K4;Z8+sEE 6E>Ec |i}d}|t|kr$||}|j|jk(r|j|jvr|j|vrd||j<|j|j}|j sm|j |jDcgc]}tj|c}|}|D]}|j|_||||dz|t|z }n|dz} | t|krJ|| j|jvr/| dz } | t|kr|| j|jvr/|| jdk(rh|j|| d\} } } |jsqt| t|j k7rP|j|j|jd|jt|j fz| | z}n|jrt| t|j dz krt|j dkDrM|j|j|jd|jt|j dz fznL|j|j|jd|jt|j dz fz| | z}n|jrt| t|j dz k(r| jgnX|| | t|j dz z| | zdz | t|j dz <| t|j d=|j|| } |j | |} | D]}|j|_| ||| | z|t| z }||j=|jd k(r1|j |_|j#|j|_|dz }|t|kr$|Scc}w) NrTr*r9zMacro %s requires %d argumentsrz(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argument__LINE__)rr#rzrr\rOrrrrrrPrsrRrirr|r})rSrkrrrmrexrrtokcountrrrrs rrzPreprocessor.expand_macross  H #f+oq Avv"77dkk)aggX.E(,HQWW% AGG,A99!//0Q220QRZ[!#0A'(xxAH0(*q1 SW E#f+o&)..DII2MFA #f+o&)..DII2M!!9??c16:6G6Gqr 6S3HT)#$::#d)AII2N $ 4;;qxx@`dedkdklopqpypylzc{@{ |$%L!"D C N1A#5$(JJt{{188Dnrsryry{~@A@I@I|JKL|LrMEM%N$(JJt{{188Dmqrqxqxz}~HH{IJK{KqLEL%M$%L#$::'*4yC N14D'D(, BAG)TWXYXaXaTbcdTdJeHefghpfpqrfrAsS^A-=(>,0QYY,A'+&<&|j |j||jd |dz }|t|kr|j||_|j|||_||dz|dz=|dz }|t|krZ|j|}t|D]\}}|j|jk(rFtj|||<|j||_|jd||_e|j|jk(stj|||<t||j||_||jd d vs||jdd ||_||jd d vr/d j|Dcgc]}t|jc}}|j!dd}|j!dd}|j!dd} t#|}|Scc}w#t$$r0|j |j|djdd}Y|SwxYw)Nrdefinedr*F0L1Lr9Tr:zMalformed defined()rB0123456789abcdefABCDEFrz&&z and z||z or r;z not zCouldn't evaluate expression)rr#rzrrr\rsrRrr|r}r enumeraterstrrreval Exception) rSrkrr needparenresultrrexprs revalexprzPreprocessor.evalexpr(s #f+oay~~*vay)/KE! #f+oay~~2Q 4994!!9??dkk9%)F%)F(%C/$( C/ 4;;vay/?/?@UVFA!#f+o""&q "&"5"5f"=q 1Q3qs7O FA3#f+o4##F+V$ ;CAavv" IIaLq !%q "&"5"5d";q 4>>) IIaLq "%fQioo"6q Qioob)1II&,Qioocr&:F1IOQioob)1II ;wwf5AGG 56||D)||D(||C( $ZF 6   JJt{{6!9#3#34R SF  sK;. L5L98L9c#Kt|}|j|}|sd}|jd|z||_g}d}d}g}|D]^} t | D]\} } | j |j vsn jdk(r | D];} | j |j vsd| jvs+|j| =|j|  dzd} | r$| dj} |j| dd}nd} g}| d k(r1|s|j|D]} | g}|j|| d k(ra|s|j|D]} | g}|jd }|j|D]} | ||jd <||_^| d k(r3|sg|j|D]} | g}|j|| d k(r<|j||f|s|dj|jvrd}d}d}| dk(r<|j||f|s|dj|jvrd}d}d}| dk(r4|j||f|s4|j|}|sd}d}Md}Q| dk(r]|r/|ddsb|rd}h|rl|j|}|sd}d}|j|j| dj d| dk(rH|r|dds|rd}|rd}d}|j|j| dj d| dk(rC|r|j#\}}|j|j| dj dHJ|sN|j%| a|j|D]} | g}yw)Nrz __FILE__ "%s"TFr-rr*rrbinclude__FILE__undefifdefifndefifelifrBzMisplaced #elifelsezMisplaced #elseendifzMisplaced #endif)rJrrbrRrr#rrrirrr\rrrrsrpopextend)rSrIrRrrchunkenable iftriggerifstackrrrl dirtokensrNroldfilers rparsegenzPreprocessor.parsegencs UO  #F %./  f $A"1 4#88499,e 4yyC*Cxx499,1B S)*!OOAacdG4 $Q<--D??9QR=9DDD8##'#5#5e#<&C"%I& " D)Y&#'#5#5e#<&C"%I& ""&++j"9#'<<#5&C"%I&29 J/&, W_#'#5#5e#<&C"%I& " 4(W_NNF9#56#Aw}} ;%*F(-I(,IX%NNF9#567==DKK7%*F(-I(,IT\NNF9#56!%t!4%%*F(-I(,IV^"2;q>%).%.)-t)<#).2F04I 4;;y|/B/BCTUV^"2;q>%).%.)-,0  4;;y|/B/BCTUW_+2;;=(y 4;;y|/B/BCUVLLOMf $P%%e, CI seA3O60O'O6AO5O A$O/A O:?O;?O<,O*O4O AO OA>O1Oc#K|sy|r6|djdk7r-|dj|jk7r|j|}|djdk(rd}|t |kr'||jdk(rn |dz }|t |kr't dydj |d|Dcgc]}|jc}}|jdgz|jz}nX|dj|jk(r0|djdd}|jdgz|jz}n t dyD]}tjj |} t|d j}tjj|} | r|jjd| |j||D]} | | r |jd=yt d zycc}w#t$rYwxYww) Nrr<r*r=zMalformed #include <...>rrBzMalformed #include statementrzCouldn't find '%s')rr#r~rrrorr]r^osopenreaddirnameinsertrIOError) rSrkrrfilenamer]pinamedatadnamerls rrzPreprocessor.includes  ay#%&)..DMM*I++F3ay#%#f+oay#-FA#f+o 4577VAa[#AAGG#AByyB4'$..84==0!!9??1R0~~,tyy845 3AGGLL8,E E#++-.NN))!E2==h7CIq) 3 &1 2/$B(  s>BH H /G8B"H %BG=&H = H H H  H c t|tr|j|}|} |d}t|dkDr|d}nd}|s0t |j g}||j |j <y|j|jvrBt |j |j|dd}||j |j <y|j dk(r6|j|dd\}}}d} |D]} | r tdydj| D cgc]} t| j c} } | dk(r(d } |j| d_d | d_d } | dd=r| d ddk(rS| dj|jk(r7d } | dd=| dj d ddk(r| dj dd | d_t| dkDs| dj|jk7std y|j|d|zd} d}|t| kr|dzt| krj| |j|jvr| |dzj d k(r| |=S| |j d k(r$| |dzj|jvr| |dz=|dz }|t| krt |j | |Dcgc]}|dj c}| }|j|||j |j <ytdycc} wcc}w#t $rtdYywxYw)Nrr*rr9Fz0No more arguments may follow a variadic argumentrz...T __VA_ARGS__zInvalid macro argumentrwzBad macro definition) isinstance STRING_TYPESrmrrLrr\r#rrrrorrrzr LookupError)rSrklinetokrNmtyperrrrrParastrmvaluerrs rrbzPreprocessor.defines f\ *]]6*F9 *1:D7|a $**R(*+ DJJ'tyy($**T__WQR[%AB*+ DJJ'#,0,=,=gabk,J)$  $0APQ77A#>bCM#>?Du}#'$(II! %2! #'abE bce+! TYY0F#'abEQ4::bc?e3)*1CRAaDJ 1vzQqTYY$))%;67-$00"__WQxZ[-ABFAc&k/Q3V,%ay~~:vac{?P?PTX?X$*1I (!'D!8VAaC[=M=MQUQZQZ=Z$*1Q3KQc&k/djjT0J10J8TA&&q)./DKK +,-E$?<1K  * ( ) *s]A L(2AL( >L( L(L 6B9L(0 L(=B6L(4L( L# 2L( L( L((L?>L?c\|dj} |j|=y#t$rYywxYw)Nr)rr\r)rSrkids rrzPreprocessor.undef]s1 AY__  B   s  ++c@||_|j|||_yrg)ignorerrd)rSrIrRrs rparsezPreprocessor.parseis mmE&1 rc t|j}|j|jvr|S0#t$r d|_YywxYwrg)nextrdr#r StopIteration)rSrls rrhzPreprocessor.tokenrsL 4;;'884;;.s  DK s/33AArg)rUrVrWrTrmrsr_rrrrrrrrrrrbrrrhrrrrYrYso,,4JxB 8+j!:V'd9D4v{F)3b>*L!%B2rrY__main__r*)1sys version_infomajorrunicoderrangerrkliteralsr t_CPP_POUND t_CPP_DPOUNDt_CPP_IDr t_CPP_INTEGER t_CPP_FLOATrr r%r'r,rerr`os.pathrcompilerGrCrJobjectrLrYrUply.lexr[rrargvfrrIrrrhrlrorRrrrrsq A>LL F  ,      Q       & 67            K&F"\ 6\ | z CGGIE SXXa[A FFHEUAGGE#((1+ ggiE ahh r