YL iddlmZddlmZmZddlmZmZ ddlmZ ddl Z ddl Z ddl Z e jdkrddlZnddlZej"ZdZd Ze j*d e j,e j.zZe j*d e j,e j.zZe j*d e j.Ze j*d Ze j*dZe j*dZe j*dZdae j*de j@Z!e j*dZ"e j*dZ#e j*dZ$e j*dZ%e j*dZ&e j*dZ'e j*dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0d!Z1Gd"d#e2Z3y#e $rddl Z YwxYw#e $rdZYwxYw)$)model) COMMON_TYPESresolve_common_type)FFIError CDefError) _pycparserN)cddl}ddl}yNr )pycparser.yacctabpycparser.lextab) pycparsers R/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/cffi/cparser.py%_workaround_for_static_import_findersrs zz/\*.*?\*/|//([^\n\\]|\\.)*?$z?^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)\b((?:[^\n\\]|\\.)*?)$z^[ \t]*#[ \t]*(?:line|\d+)\b.*$z=\s*\.\.\.\s*[,}]|\.\.\.\s*\}z__dotdotdot\d+__$z\[\s*\.\.\.\s*\]z\w+|\Sz-?0?x?[0-9a-f]+[lu]*$z\b(__stdcall|WINAPI)\bz[(]\s*(__stdcall|WINAPI)\bz \b__cdecl\bz9\bextern\s*"(Python|Python\s*\+\s*C|C\s*\+\s*Python)"\s*.z'[*]\s*((const|volatile|restrict)\b\s*)+z3(\b(int|long|short|signed|unsigned|char)\s*)+\.\.\.z\b(double|float)\s*\.\.\.cBttjatSN) _parser_cacherCParserrr _get_parserr2s!))+ rcVg} tj|}|sn|j|d|j|jdd}|j|j |j }|j d|r|jd|dz }d}|}|t|kr?||}|dk(r|dz }n|dk(r |dk(rn$|dz}n |dvr|dk(rn|dz }|t|kr?||||z||dz}|j|dj|S)N()*r rz,;=) _r_star_const_spacesearchappendstartgroupend startswithlenjoin)csourcepartsmatchclosingendposlevelics r_workaround_for_old_pycparserr/8s< E #**73  W^ekkm,- SS7 U[[]#   c6 * LL w#~w #g, ACx cA: eA: FA#g,&#g- ;3 6 LL 775>rcg} tj|}|sn-|jdz }|j|d|j d|j dvr|jdn|jd||dk(rf|j d|}|dkr td|j d|dz|dk\r td |j||dz|||dzd}nA|j d |}|dkr td |j|||dz||dzd}|jd F|j|d j|S)NrCz(void __cffi_extern_python_plus_c_start; z!void __cffi_extern_python_start; {}r z!'extern "Python" {': no '}' foundz7cannot use { } inside a block 'extern "Python" { ... }';z'extern "Python": no ';' foundz void __cffi_extern_python_stop;r) _r_extern_pythonrr#r r!r"findrNotImplementedErrorr&)r'r(r)r+r* semicolons r_preprocess_extern_pythonr9bsu E  ''0 q  W^ekkm,- %++a. LLC D LL< = 6?c !ll3/G{ EFF||C!W5:)+HII LL'2 3gaij)G S&1I1} BCC LL ! 4 5ikl+G 78= B LL 775>rcd|vry|jD]=}d|vs|jjdr(ddl}|j dyy)N"#r zString literal found in cdef() or type source. String literals are ignored here, but you should remove them anyway because some character sequences confuse pre-parsing.) splitlineslstripr$warningswarn)r'liner?s r_warn_for_string_literalrBsX '""$ $;t{{}77<  MM1 2 rcd|js$ddl}|jd|jdyy)Nr zGlobal variable 'z_' in cdef(): for consistency with C it should have a storage class specifier (usually 'extern'))storager?r@name)declr?s r/_warn_for_non_extern_non_static_global_variablerGs) << .2ii: ; rcFgfd}tj||}|fS)Ncbt}j|jd|zS)Nz#line@%d)r%r r")mr-line_directivess rreplacez(_remove_line_directives..replaces+  qwwy)A~r_r_line_directivesub)r'rLrKs @r_remove_line_directivesrPs. O ##GW5G O ##rc:fd}tj||S)Nc~|j}|jds tdt|ddS)Nz#line@zBunexpected #line directive (should have been processed and removed)r"r$AssertionErrorint)rJsrKs rrLz*_put_back_line_directives..replacesD GGI||H% "KL Ls1QR5z**rrM)r'rKrLs ` r_put_back_line_directivesrWs+  ' 22rc,t|\}}d}tj||}i}tj |D]:}|j \}}|j ddj}|||<<tjd|}tjdkr t|}tjd|}tjd|}tjd|}t|}t|t jd|}t#t$j |}t't)|D]u\}}|j+} || d k(r:|j-d | |j/} | | kDsJd |d| ||| d zdfz}X|| | d zd k(sJd |d| ||| d zdfz}wt0jd|}t2jd|}|j d d}t5||}||fS)NcLd|jjddzzS)N  )r"count)rJs rreplace_keeping_newlinesz-_preprocess..replace_keeping_newliness!QWWY__T*T111rz\ rz2.14z volatile volatile const(z volatile volatile const rZz[__dotdotdotarray__]=...z%s,__dotdotdot%d__ %sr z%s __dotdotdot%d__ %sz __dotdotdotint__ z __dotdotdotfloat__ z __dotdotdot__ )rP _r_commentrO _r_definefinditergroupsrLstripr __version__r/ _r_stdcall2 _r_stdcall1_r_cdeclr9rB_r_partial_arraylist_r_partial_enum enumeratereversedr!r6r#_r_int_dotdotdot_r_float_dotdotdotrW) r'rKr]macrosr) macroname macrovaluematchesnumberpp2s r _preprocessrws1 7w?G_2nn5w?G F##G,' %  :''399; &y'mmB(Gv%/8oo97CGoo97CGll3(G(0GW%""#97CG?++G45G"8G#45 @  KKM 1: eQ 4B6M6-!f18A1AAG1QqS>U* **-!f1811@@G @""#7AG $$%;WEGooe%67G'AG F?rcFtt}|jd|jd|jd|jd|jdt}d}d}d}tj |D]}||vr|dk(r'|r|j ||j |d}n`|dk(rd }d}nV|dk(r|d z }nK|dk(r|d z}n@|dk(r*|r9|dk(r4|j ||j |n|j||}|S) Nr4,rrtypedefFr rTr)setradd_r_wordsfindalldiscard)r'look_for_words words_used is_typedefparen previous_wordwords r_common_type_namesrs. &Nssssy!JJ EM  ) > !s{&&}5"**=9!&J"!   %1*&&}5"**=9t$ )* rceZdZdZdZdZdZ ddZdZdZ d Z d Z d Z d Z d ZdZddZdZddZ d dZddZdZd!dZdZd"dZdZdZdZdZdZy)#Parserci|_t|_d|_t j |_i|_i|_g|_ d|_ yr ) _declarationsr{_included_declarations_anonymous_counterweakrefWeakKeyDictionary_structnode2type_options_int_constants _recomplete_uses_new_feature)selfs r__init__zParser.__init__)sL&)e#"# ' 9 9 ;  !%rcpt|\}}t|}g}t|jD];}|j ds|dd}|j ||j |=|t|z }g}|j d|D]}|j d|z|j d|j dtd|j ||j dd j|}ttj tj|} ttj#  ||fS#tjj$r} |j!| |Yd} ~ Td} ~ wwxYw#ttj#wwxYw) Ntypedef z*# 1 ""ztypedef int %s;z@typedef int __dotdotdotint__, __dotdotdotfloat__, __dotdotdot__;z# 1 "r;rr[)rwrsortedrr$r rCDEF_SOURCE_STRINGr&lockacquirerparserc_parser ParseErrorconvert_pycparser_errorrelease) rr'rpctn typenamesrE csourcelinestypename fullcsourceastes r_parsez Parser._parse3s%g. !) 4--. "Dz*ABx  & D!  " VC[  HI! >H    1H < = >. / *<>?G$Bii -   LLN -%%k2C FG## !!,, 5  ( (G 4 4 5  s*#EF9F FFFF5cd}t|}tjtd|}|rKt |j dd}|j }d|cxkrt|kr n|S||dz }|S)Nz:(\d+):r )strrer)rrUr"r=r%)rrr'rAmsgr)linenumrs r_convert_pycparser_errorzParser._convert_pycparser_errorZsw!f);=sC %++a."-G"--/LG0s<00 $GAI. rc|j||}t|}|r!d|jd|}t|d|}t|)Nzcannot parse "z" z parse error )rrrdr)rrr'rArs rrzParser.convert_pycparser_errorhsU,,Q8!f -1ZZ\3?Cn (+,CnrNc|r |dk7r td|r tdd}n|r||dz zrtd|d}|j} |||d|_|j|||_y#||_wxYw)NTzB'packed' should be False or True; use 'pack' to give another valuez$cannot give both 'pack' and 'packed'rz#'pack' must be a power of two, not r )overridepacked dllexport) ValueErrorr_internal_parse)rr'rrpackr prev_optionss rrz Parser.parsers ~ "@AA !GHHD tax  "D}}  ))1'+*35DM   )(DMLDMs A.. A7c |j|\}}}|j|t|j}|D]}|jdk(snJd} d|_|D]}|}t |tjjr|j|: this construct is valid C but not valid in cdef()rz *** Err: %s)r_process_macrositerextrE_inside_extern_python isinstancerc_astDecl _parse_declTypedefrtypeIdentifierTypenamesr$_get_unknown_typePtrDeclTypeDecl_get_unknown_ptr_type_get_type_and_quals_declare __class____name__r?r@r%argsrr) rr'rrpiteratorrF current_declrrealtyper?rrs rrzParser._internal_parses#{{73VW V$= DyyO+  1 / )DD & $ C# dIOO$8$89$$T*ioo&=&=>99'(K(,..E"499>>9??3Q3QR IINN004?? N#'#9#9$#?$TYY 0G0GH$TYY^^Y__5M5MN$TYY^^%8%8%.__%C%CE))..--33B7BB=Q#'#=#=d#C*.*B*B IIDII:>)),E+C+G%MM*tyy"8(%MP^^,,8#MM?@$%@$(NN$;$;%<=ACCE$ CJ 166{a@B B#&C rc@|jjd}|jd}|r|dd}|jdr|dk7r|jdsd|ddz}t|d}|r| }|j |||j d|z|y) Nul-r00x0or macro )lowerrstripr$rUrr)rrEint_strnegpyvalues r_add_integer_constantzParser._add_integer_constants--/((.  % abkG   s #3**40WQR[(Ggq/ hG D'* how/rc |jD]n\}}|j}tj|r|j ||>|dk(r|j d|z|Yt d|d|d|d|y)Nr_rz5only supports one of the following syntax: #define z+ ... (literally dot-dot-dot) #define zM NUMBER (with NUMBER an integer constant, decimal/hex/octal) got: #define rZ)itemsrd_r_int_literalr)rrr)rrprvalues rrzParser._process_macrossz ,,. .JCKKME##E***36% hne4Ce -.. .rc|j||}|jjdrd}n&|jdk(rd}n|jdk(rd}nd}|j ||j z|y)Nrzdllexport_python __cffi_extern_python_startzextern_python !__cffi_extern_python_plus_c_startzextern_python_plus_c z function )_get_type_pointerrgetrrrE)rtprrFtags r_declare_functionzParser._declare_functionsn  # #B . ==  [ )%C  ' '+G G"C  ' '+N N)CC cDIIor*rcz|j}t|tjjrP|j ||j \}}t|tjsJ|j|||yt|tjjr|jd|nt|tjjr|jd|nOt|tjjr|jd|n|j s td||j rq|j |d\}}|jr|j|||y|j!r|t#|drpt#|j$d rZt&j)|j$j*r1|j-|j |j$j*y|j!rt|j$tjj.r|j$j0d k(rt#|j$j2d rqt&j)|j$j2j*r>|j-|j d |j$j2j*zy|tj4ur-|j j7d r|j |_y|j8d k7r td |tj:zr.|j<s"|j?d|j z||ytA||j?d|j z||yy)N)rEstructunionenumz'construct does not declare any variableTrinitrr__cffi_extern_python_rzYY I $&&yy 44TGK5M E%%**2ud;((*f- 73&,,TYY__=..tyy$))//J((*"499ioo.E.EF + 8&,,TYY^^-A-AB..tyy/2TYY^^5I5I/IKEOO+ii**+BC26D.114OO'ABB -r7G7G kDII&=r OGM kDII&=r OArc*|j|dSr )parse_type_and_quals)rcdecls r parse_typezParser.parse_type0s((/22rcN|jd|zdd\}}|rJ|jdjjjd}t |t jjrtd|jd|j|jS)Nzvoid __dummy( %s );rr zunknown identifier '') rrrrparamsrrrIDrrEr)rrrrpexprnodes rrzParser.parse_type_and_quals3skk"9E"AB2AF Vz772;##((//2 h  2 2 3HI I'' 66rc2||jvrF|j|\}}||ur||k(ry|jjdstd|dd|j vsJ||f|j|<|r|j j |yy)Nrzmultiple declarations of z5 (for interactive usage, try cdef(xx, override=True))r)rrrrsplitrr|)rrEobjincludedrprevobj prevqualss rrzParser._declare;s 4%% %!%!3!3D!9 GY#~)u"4==$$Z06:=>>djjl222$'<4   ' ' + +C 0 rcLd}t|tjjtjjfrcd|j vr|t jz}d|j vr|t jz}d|j vr|t jz}|S)Nr constvolatilerestrict) rrrrrrrr  Q_VOLATILE Q_RESTRICTrrrs r_extract_qualszParser._extract_qualsIs dY__55&__446 7$**$&TZZ')))TZZ'))) rcpt|tjr|jSt|tjr]|j j drB|j ddjr%|j|tj|||Stj||S)N$r) rrras_function_pointerStructOrUnionOrEnumrEr$isdigit forcenameNamedPointerType PointerType)rrrdeclnames rrzParser._get_type_pointerUs dE11 2++- - tU66 7 $$S)diim.C.C.E&8+?))$%@ @  u--rc t|tjjrt|jtjj rt |jjdk(rld|jjdz|jvrD|jd|jjdz\}}||j|z}||fSt|tjjrw|jd}n|j|j|}||dk(rd|d}d|z}|j|j|| \}}tj|||fSt|tjj rG|j|j\}} |j#|| | }|j|}||fSt|tjjr|j|}|j} t| tjj rt%| j} | d d gk7ri} | r)| d}|d vr| j'|ddz| |<| d=nn| r)g} dD]3}t)| j'|dD]}| j+|5| sdg} | dgk(r d| vsd| vrg} | | z} dj-| }|dk(rtj.|fS|dk(r"t1d|j2j4zt7||\}}|||zfSt| tjj8r|j;d| |}||fSt| tjj<r|j;d| |}||fSt| tjj>r|j;d| |}||fSt|tjj@r|jC||dfSt|tjj8r|j;d||ddfSt|tjj<r|j;d||ddfSt1d|j2j4z)Nrrr rr_z_cffi_array_len(rr)rr)r0signedchar)shortlongr2unsigned)r6r4r5rUr4r5rZvoidrz:%d: bad usage of "..."rrrT)nestedz(:%d: bad or unsupported type declaration)"rrrrrrr%rrr' ArrayDecldim_parse_constantrr ArrayTyperrrjrranger r&r rcoordrArrrrrr_parse_function_type)rtypenoderErrrrlengthitemtype itemqualsrrprefixesnewnamesprefixr-identtp0quals0s rrzParser._get_type_and_quals^s x!9!9 : x}}ioo&D&D E  ## $ ) (----a0 0T5G5G G**: 8K8KA8N+NOIB T((2 2Eu9  h  9 9 :||#--LL4E.G *U?6EGF"%"7002C0?1AIB??2v.5 5 h  7 7 8"&":":8=="I Hi'')d'KB''1Eu9  h  8 8 9''1E==D$  > >?TZZ(Xv..!H$Qx#JJ-5\\$-BQ-FHTN %a!   "H"?4!&x||FA'>!?4A$OOF344!!&'"h.&H2D$&E$u,EF? ??E11O+"#<$NN//$0111$> VUV^,,$  6 6755hdK5y $  5 5655gtTJ5y $  4 4555fdDI5y h  8 8 9,,Xtr|j5||| jA|jxsd| jA|| jA|| jA|htC| |_tC| |_"tC| |_#tC| |_$| dgtK| zk7r4t'|t jr|j>rt|d|jLj d|_'|jPr"d|_(|jRjA||S)Nz$%srz$%drZ)NNrrrrz!Enums cannot be declared with ...zkind = z^enum %s: the '{}' declaration should appear on the first time the enum is mentioned, not laterr)z anonymous %sz"duplicate declaration of struct %srrFTrz!: using both bitfields and '...;'rr )*rKeyErrorrErrrr StructType UnionTyper_build_enum_typevaluesrTrr7r-force_the_namedeclsfldnamesrrrrrr&r _make_partialbitsizer;_partial_lengthrpartialr rQfldtypes fldbitsizefldqualsr%rr completedr)rkindrrEr8 force_name explicit_namerr_rbrgrhrirFrdfquals rrz"Parser._get_struct_union_enum_types ((. .    yy <% % 2 ''1,' %(?(? ? B M!4(C&&**3 =EB :x%%mT4F__]D$E O3#$GHH**=$++F$D%:;; c2&v~$++"9)<>KLMM||   j ) <I :: I ;; "@4GH H JJ #D499ioo&D&DEGGDIIOO,?""2v.||#..t||<#(D 22499EI3KKD%##""2v.$ 0 01dll""2v. OODIIO , OOD !   g & OOE "- #.Ho Ho j) Ho "J/ /"e../BJJ)-/+233MM%%h/ <<BL    # #B ' s  ct|tjst|d|j s|st |dd|_y)Nz cannot be partialz is partial but has no C nameT)rr StructOrUnionr has_c_namer7rf)rrr8s rrczParser._make_partialhs@"e112b:; ;}}v%"&NO O rct|tjjr|j}d|dcxkrdkr>nn;|j d} |j dr t|dSt|dS|dd k(r:|dd k(r2t|dk(st|dk(r|ddk(rt|dStd |t|tjjr*|jdk(r|j|j St|tjjr+|jdk(r|j|j  St|tjj"r1|j$|j&vr|j&|j$St|tjj"r;|j$dk(r,|rd|_yt+d|j,j.zt|tjj0r|j|j2}|j|j4}|jdk(r||zS|jdk(r||z S|jdk(r||zS|jdk(r|j7||S|jdk(r||j7|||zz S|jdk(r||zS|jdk(r||z S|jdk(r||zS|jdk(r||zS|jd k(r||z St+d!|j,j.z#t$rYt|dkDrH|jddd k(rt|d cYS|jddd k(rt|dcYSYnwxYwtd |)"Nrr 9uUlLrrrrr0bzinvalid constant rrr \+r__dotdotdotarray__Tr_zT:%d: unsupported '[...]' here, cannot derive the actual array length in this contextr/%z<>&|^z?:%d: unsupported expression: expected a simple numeric constant)rrrConstantrrr$rUrr%rrordr r r;r rrErrerr>rABinaryOpleftright_c_div)rrrrVrrs rr;zParser._parse_constantos~ h  8 8 9Aad!c!HHV$ -||C("1ay("1bz)12#FaKCFaKAaDDL1R5z! <== x!8!8 9 s"'' 6 6 x!8!8 9 s"((77 7 x!3!3 4 !4!44&&x}}5 5 x!3!3 4MM%99 '+$E%^^0012 2 h  8 8 9'' 6D((8E{{c!e|##e|##e|##{{4//#dkk$6>>>$u}$$u}$#e|##e|##e|#13;>>3F3FGH Hu"-1vz779Qq>T1#&q":-WWYq^t3#&q!9, -   <==sN1 N9O%>"O%$O%c@||z}|dk|dkz r ||zdk7r|dz }|S)Nr rr)rabrVs rrz Parser._c_divs3a Uq1u AEa< aKF rc|d}g}g}d}|jD]}tj|jrd}%|j|j |j}|j |j|j ||j|j||dz }t|}t|}tj|||}||_ |Stj|dd}|S)NFr Trr) enumerators_r_enum_dotdotdotr)rErr;r rrQrEnumTyperf) rrmrarfr enumvalues nextenumvaluerrs rr^zParser._build_enum_types  GKJM)) #$**4995"G::)$($8$8$DM""499-!!-0##DII}="  # ,Kz*J {JGB BJ  r26B rc8|jjD]I\}\}}|jdr|jddd}|dvs5|j ||d|K|j jD]\}}|j ||y)Nzanonymous $enum_$rZrr )rrr anonymousrzT)rr)rrr$rrrr)rotherrErrrkkvs rincludezParser.includes!&!4!4!:!:!< D D+2u23::c1%a(DJJ dBU C  D ((..0 &DAq   1 % &rc|jjj}|dgk(rtj|jS|dgk(r?|j d|jz|_tj |jS|dgk(r?|j d|jz|_tj|jStd|jjz)Nr__dotdotdotint__z'typedef int... %s'__dotdotdotfloat__z'typedef float... %s'*:%d: unsupported usage of "..." in typedef) rrr unknown_typerErUnknownIntegerTypeUnknownFloatTyperr>rA)rrFrs rrzParser._get_unknown_typesIINN(( ) )%%dii0 0 +, ,%%-)>)J&++DII6 6 -. .%%-)@499)L&))$))4 4C)* *rc|jjjjdgk(rtj|jSt d|j jz)Nrr)rrrunknown_ptr_typerErr>rA)rrFs rrzParser._get_unknown_ptr_typesV 99>>   $ $(9 9))$))4 4C)* *r)FFNF)Fr r)NFN)NF)F)r __module__ __qualname__rrrrrrrrrrrrrrr'rrr?rPrrcr;rr^rrrrrrrr's&%$N AE#)0=~' 0." +1Pf37 1 .JO,0g%R!IFtlGHR 0&*&*rr)4rr commontypesrrerrorrrrr ImportErrorrrsys version_infothread_thread allocate_lockrrrcompileDOTALL MULTILINEr`rarNrkrrir}r IGNORECASErrgrfrhr5rrnrorr/r9rBrGrPrWrwrobjectrrrrrs:&) $  7 "D, RZZ7 BLL02 RZZ2 BLL02 BJJA2<<P"**=>BJJ342::12 2::i  4bmmDbjj23 bjj67 2::n %2::OP bjj.02::()RZZ <= (T0d ; $3@D%PP *VP *C  Ds"G)G& G#"G#&G10G1