hyb
2025-11-07 cadac0a99d87c53805a07f3b4ca7fd11e524fe4a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Ë
Iñúh@Eãó:—ddlZddlmZddlmZGd„de«Zy)éNé)Úlex)ÚTOKENcó—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
Z d Z iZe D]Zeeej!«<Œe D],Zeeed d j#«ed d j!«z<Œ.e e zdzZdZdZdZdZdZdZdezdzezdzZdezZeezezZeezezZdZdZdZdZ dZ!dZ"dZ#d e zd!ze!zd!ze"zd"zZ$d#Z%d$e$zdzZ&d%e&zd%zZ'd&e'zZ(d'e'zZ)d(e'zZ*d)e'zZ+d%e&zd*zZ,d+e&zd,ze&zd-zZ-d+e&zd.ze#zd/zZ.d0e%zdzZ/d1e/zd2zZ0d&e0zZ1d'e0zZ2d(e0zZ3d)e0zZ4d1e/zd3ze#ze/zd2zZ5d4Z6d5Z7d6e7zdze6zd7ze6zd8zZ8d9Z9d:ezd;zezd<zezd=zZ:d>ezd>zezd!ze:zdze9zd?zZ;d@Z<dA„Z=e>e0«dB„«Z?e>e«dC„«Z@dD„ZAdE„ZBdFZCdG„ZDdH„ZEdI„ZFdFZGdJ„ZHdK„ZIdFZJdL„ZKdMZLdNZMdOZNdPZOdQZPdRZQdSZRdTZSdUZTdVZUdWZVdXZWdYZXdZZYd[ZZd\Z[d]Z\d^Z]d_Z^d`Z_daZ`dbZadcZbddZcdeZddfZedgZfdhZgdiZhdjZidkZjdlZkdmZldnZmdoZndpZodqZpdrZqdsZrdtZsduZtdvZudwZvdxZwe>dy«dz„«Zxe>d{«d|„«Zye0Zze>e8«d}„«Z{e>e;«d~„«Z|e>e«d„«Z}e>e«d€„«Z~e>e«d„«Ze>e«d‚„«Z€e>e«dƒ„«Ze>e«d„„«Z‚e>e«d…„«Zƒe>e,«d†„«Z„e>e'«d‡„«Z…e>e(«dˆ„«Z†e>e)«d‰„«Z‡e>e*«dŠ„«Zˆe>e+«d‹„«Z‰e>e-«dŒ„«ZŠe>e.«d„«Z‹e>e1«dŽ„«ZŒe>e2«d„«Ze>e3«d„«ZŽe>e4«d‘„«Ze>e5«d’„«Ze>e«d“„«Z‘d”„Z’y )•ÚCLexera A lexer for the C language. After building it, set the
        input text with input(), and call token() to get new
        tokens.
 
        The public attribute filename can be set to an initial
        filename, but the lexer will update it upon #line
        directives.
    cóÀ—||_||_||_||_d|_d|_t jd«|_t jd«|_    y)ab Create a new Lexer.
 
            error_func:
                An error function. Will be called with an error
                message, line and column as arguments, in case of
                an error during lexing.
 
            on_lbrace_func, on_rbrace_func:
                Called when an LBRACE or RBRACE is encountered
                (likely to push/pop type_lookup_func's scope)
 
            type_lookup_func:
                A type lookup function. Given a string, it must
                return True IFF this string is a name of a type
                that was defined with a typedef earlier.
        ÚNz([ \t]*line\W)|([ \t]*\d+)z[ \t]*pragma\W)
Ú
error_funcÚon_lbrace_funcÚon_rbrace_funcÚtype_lookup_funcÚfilenameÚ
last_tokenÚreÚcompileÚ line_patternÚpragma_pattern)Úselfr
r r r s     úDH:\Change_password\venv_build\Lib\site-packages\pycparser/c_lexer.pyÚ__init__zCLexer.__init__sY€ð$%ˆŒØ,ˆÔØ,ˆÔØ 0ˆÔ؈Œ ðˆŒô
ŸJ™JÐ'DÓEˆÔÜ Ÿj™jÐ):Ó;ˆÕóc ó<—tjdd|i|¤Ž|_y)zù Builds the lexer from the specification. Must be
            called after the lexer object is created.
 
            This method exists separately, because the PLY
            manual warns against calling lex.lex inside
            __init__
        ÚobjectN©)rÚlexer)rÚkwargss  rÚbuildz CLexer.build9s€ô—W‘WÑ3 DÐ3¨FÑ3ˆ
rcó&—d|j_y)z? Resets the internal line number counter of the lexer.
        rN)rÚlineno©rs rÚ reset_linenozCLexer.reset_linenoCs€ðˆ
‰
Õrcó:—|jj|«y©N)rÚinput)rÚtexts  rr$z CLexer.inputHs€Ø 
‰
×јÕrcóX—|jj«|_|jSr#)rÚtokenrr s rr'z CLexer.tokenKs €ØŸ*™*×*Ñ*Ó,ˆŒØ‰Ðrcó‚—|jjjdd|j«}|j|z
S)z3 Find the column of the token in its line.
        ú
r)rÚlexdataÚrfindÚlexpos)rr'Úlast_crs   rÚfind_tok_columnzCLexer.find_tok_columnOs5€ð—*‘*×$Ñ$×*Ñ*¨4°°E·L±LÓAˆØ|‰|˜gÑ%Ð%rcóŽ—|j|«}|j||d|d«|jjd«y)Nrr)Ú_make_tok_locationr
rÚskip)rÚmsgr'Úlocations    rÚ_errorz CLexer._errorZs:€Ø×*Ñ*¨5Ó1ˆØ ‰˜˜X a™[¨(°1©+Ô6Ø 
‰
‰˜Õrcó<—|j|j|«fSr#)rr.)rr's  rr0zCLexer._make_tok_location_s€Ø— ‘ ˜d×2Ñ2°5Ó9Ð:Ð:r)$ÚAUTOÚBREAKÚCASEÚCHARÚCONSTÚCONTINUEÚDEFAULTÚDOÚDOUBLEÚELSEÚENUMÚEXTERNÚFLOATÚFORÚGOTOÚIFÚINLINEÚINTÚLONGÚREGISTERÚOFFSETOFÚRESTRICTÚRETURNÚSHORTÚSIGNEDÚSIZEOFÚSTATICÚSTRUCTÚSWITCHÚTYPEDEFÚUNIONÚUNSIGNEDÚVOIDÚVOLATILEÚWHILEÚ__INT128)    Ú_BOOLÚ_COMPLEXÚ    _NORETURNÚ _THREAD_LOCALÚ_STATIC_ASSERTÚ_ATOMICÚ_ALIGNOFÚ_ALIGNASÚ_PRAGMANé)DÚIDÚTYPEIDÚ INT_CONST_DECÚ INT_CONST_OCTÚ INT_CONST_HEXÚ INT_CONST_BINÚINT_CONST_CHARÚ FLOAT_CONSTÚHEX_FLOAT_CONSTÚ
CHAR_CONSTÚ WCHAR_CONSTÚ U8CHAR_CONSTÚ U16CHAR_CONSTÚ U32CHAR_CONSTÚSTRING_LITERALÚWSTRING_LITERALÚU8STRING_LITERALÚU16STRING_LITERALÚU32STRING_LITERALÚPLUSÚMINUSÚTIMESÚDIVIDEÚMODÚORÚANDÚNOTÚXORÚLSHIFTÚRSHIFTÚLORÚLANDÚLNOTÚLTÚLEÚGTÚGEÚEQÚNEÚEQUALSÚ
TIMESEQUALÚDIVEQUALÚMODEQUALÚ    PLUSEQUALÚ
MINUSEQUALÚ LSHIFTEQUALÚ RSHIFTEQUALÚANDEQUALÚXOREQUALÚOREQUALÚPLUSPLUSÚ
MINUSMINUSÚARROWÚCONDOPÚLPARENÚRPARENÚLBRACKETÚRBRACKETÚLBRACEÚRBRACEÚCOMMAÚPERIODÚSEMIÚCOLONÚELLIPSISÚPPHASHÚPPPRAGMAÚ PPPRAGMASTRz[a-zA-Z_$][0-9a-zA-Z_$]*z0[xX]z [0-9a-fA-F]+z0[bB]z[01]+zD(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?z(0z)|([1-9][0-9]*ú)z0[0-7]*z 0[0-7]*[89]z\/\*z\/\/z,([a-wyzA-Z._~!=&\^\-\\?'"]|x(?![0-9a-fA-F]))z (\d+)(?!\d)z(x[0-9a-fA-F]+)(?![0-9a-fA-F])z#([\\][^a-zA-Z._~^!=&\^\-\\?'"x0-9])z(\\(ú|z))z(\\[0-9a-zA-Z._~!=&\^\-\\?'"])z
([^'\\\n]|ú'ÚLÚu8ÚuÚUz{2,4}'z('z*\n)|('z*$)z[^'
]+')|('')|('z    [^'\n]*')z
([^"\\\n]|ú"z*"Ú*z([eE][-+]?[0-9]+)z([0-9]*\.[0-9]+)|([0-9]+\.)z((((z
?)|([0-9]+z
))[FfLl]?)z([pP][+-]?[0-9]+)z(((z)?\.z)|(z\.))ú(z[FfLl]?)))ÚpplineÚ    exclusive)Úpppragmar³có´—|jj|jj|jj¬«r*|jj d«dx|_|_y|jj|jj|jj¬«r|jj d«yd|_    |S)z[ \t]*\#)Úposr²Nr´r¥)
rÚmatchrr*r,ÚbeginÚpp_lineÚ pp_filenamerÚtype©rÚts  rÚt_PPHASHzCLexer.t_PPHASH&s€à × Ñ × "Ñ " 1§7¡7§?¡?¸¿¹¿¹Ð "Ô GØ G‰GM‰M˜(Ô #Ø.2Ð 2ˆDŒL˜4Õ+Ø ×  Ñ  × &Ñ & q§w¡w§¡¸A¿G¹G¿N¹NÐ &Ô KØ G‰GM‰M˜*Õ %àˆAŒF؈Hrcó —|j€|jd|«y|jjd«j    d«|_y)Nz$filename before line number in #liner¯)r¹r4ÚvalueÚlstripÚrstriprºr¼s  rÚt_ppline_FILENAMEzCLexer.t_ppline_FILENAME4s;€à <‰<Ð Ø K‰KÐ>ÀÕ Bà Ÿw™wŸ~™~¨cÓ2×9Ñ9¸#Ó>ˆDÕ rcó@—|j€|j|_yyr#)r¹rÀr¼s  rÚt_ppline_LINE_NUMBERzCLexer.t_ppline_LINE_NUMBER;s€à <‰<Ð ØŸ7™7ˆDLð rcóú—|j€|jd|«nAt|j«|j_|j
|j
|_|jjd«y)ú\nNzline number missing in #lineÚINITIAL)r¹r4Úintrrrºrr¸r¼s  rÚt_ppline_NEWLINEzCLexer.t_ppline_NEWLINEDsY€à <‰<Ð Ø K‰KÐ6¸Õ :ä # D§L¡LÓ 1ˆDJ‰JÔ à×ÑÐ+Ø $× 0Ñ 0” à    ‰ ‰ iÕ rcó—y)ÚlineNrr¼s  rÚt_ppline_PPLINEzCLexer.t_ppline_PPLINEPs€à rz     có(—|jd|«y)Nzinvalid #line directive©r4r¼s  rÚt_ppline_errorzCLexer.t_ppline_errorVs€Ø  ‰ Ð-¨qÕ1rcóx—|jxjdz c_|jjd«y)rÇrrÈN)rrr¸r¼s  rÚt_pppragma_NEWLINEzCLexer.t_pppragma_NEWLINE\s$€à    ‰Š˜!эؠ   ‰ ‰ iÕ rcó—|S)Úpragmarr¼s  rÚt_pppragma_PPPRAGMAzCLexer.t_pppragma_PPPRAGMAaó€àˆrcó—d|_|S)z.+r§)r»r¼s  rÚt_pppragma_STRzCLexer.t_pppragma_STRgs€àˆŒØˆrcó(—|jd|«y)Nzinvalid #pragma directiverÏr¼s  rÚt_pppragma_errorzCLexer.t_pppragma_errorls€Ø  ‰ Ð/°Õ3rcót—|jxj|jjd«z c_y)z\n+r)N)rrrÀÚcountr¼s  rÚ    t_NEWLINEzCLexer.t_NEWLINEus!€à    ‰Š˜!Ÿ'™'Ÿ-™-¨Ó-Ñ-Žrz\+ú-z\*ú/ú%z\|ú&ú~z\^z<<z>>z\|\|z&&ú!ú<ú>z<=z>=z==z!=ú=z\*=z/=z%=z\+=z-=z<<=z>>=z&=z\|=z\^=z\+\+z--z->z\?z\(z\)z\[z\]ú,z\.ú;ú:z\.\.\.z\{có&—|j«|Sr#)r r¼s  rÚt_LBRACEzCLexer.t_LBRACE½ó€à ×ÑÔØˆrz\}có&—|j«|Sr#)r r¼s  rÚt_RBRACEzCLexer.t_RBRACEÁrìrcó—|Sr#rr¼s  rÚ t_FLOAT_CONSTzCLexer.t_FLOAT_CONSTÍrÖrcó—|Sr#rr¼s  rÚt_HEX_FLOAT_CONSTzCLexer.t_HEX_FLOAT_CONSTÑrÖrcó—|Sr#rr¼s  rÚt_INT_CONST_HEXzCLexer.t_INT_CONST_HEXÕrÖrcó—|Sr#rr¼s  rÚt_INT_CONST_BINzCLexer.t_INT_CONST_BINÙrÖrcó,—d}|j||«y)NzInvalid octal constantrÏ©rr½r2s   rÚt_BAD_CONST_OCTzCLexer.t_BAD_CONST_OCTÝs€à&ˆØ  ‰ C˜Õrcó,—d}|j||«y©NzKComments are not supported, see https://github.com/eliben/pycparser#3using.rÏrøs   rÚt_UNSUPPORTED_C_STYLE_COMMENTz$CLexer.t_UNSUPPORTED_C_STYLE_COMMENTâó€à[ˆØ  ‰ C˜Õrcó,—d}|j||«yrûrÏrøs   rÚt_UNSUPPORTED_CXX_STYLE_COMMENTz&CLexer.t_UNSUPPORTED_CXX_STYLE_COMMENTçrýrcó—|Sr#rr¼s  rÚt_INT_CONST_OCTzCLexer.t_INT_CONST_OCTìrÖrcó—|Sr#rr¼s  rÚt_INT_CONST_DECzCLexer.t_INT_CONST_DECðrÖrcó—|Sr#rr¼s  rÚt_INT_CONST_CHARzCLexer.t_INT_CONST_CHAR÷rÖrcó—|Sr#rr¼s  rÚ t_CHAR_CONSTzCLexer.t_CHAR_CONSTûrÖrcó—|Sr#rr¼s  rÚ t_WCHAR_CONSTzCLexer.t_WCHAR_CONSTÿrÖrcó—|Sr#rr¼s  rÚt_U8CHAR_CONSTzCLexer.t_U8CHAR_CONSTrÖrcó—|Sr#rr¼s  rÚt_U16CHAR_CONSTzCLexer.t_U16CHAR_CONSTrÖrcó—|Sr#rr¼s  rÚt_U32CHAR_CONSTzCLexer.t_U32CHAR_CONST rÖrcó,—d}|j||«y)Nz Unmatched 'rÏrøs   rÚt_UNMATCHED_QUOTEzCLexer.t_UNMATCHED_QUOTEs€àˆØ  ‰ C˜ÕrcóF—d|jz}|j||«y)NzInvalid char constant %s)rÀr4røs   rÚt_BAD_CHAR_CONSTzCLexer.t_BAD_CHAR_CONSTs€à(¨1¯7©7Ñ2ˆØ  ‰ C˜Õrcó—|Sr#rr¼s  rÚt_WSTRING_LITERALzCLexer.t_WSTRING_LITERALrÖrcó—|Sr#rr¼s  rÚt_U8STRING_LITERALzCLexer.t_U8STRING_LITERALrÖrcó—|Sr#rr¼s  rÚt_U16STRING_LITERALzCLexer.t_U16STRING_LITERAL!rÖrcó—|Sr#rr¼s  rÚt_U32STRING_LITERALzCLexer.t_U32STRING_LITERAL%rÖrcó,—d}|j||«y)Nz#String contains invalid escape coderÏrøs   rÚt_BAD_STRING_LITERALzCLexer.t_BAD_STRING_LITERAL+s€à3ˆØ  ‰ C˜Õrcó¾—|jj|jd«|_|jdk(r"|j    |j«rd|_|S)Nrdre)Ú keyword_mapÚgetrÀr»r r¼s  rÚt_IDz CLexer.t_ID0sH€à×!Ñ!×%Ñ% a§g¡g¨tÓ4ˆŒØ 6‰6TŠ>˜d×3Ñ3°A·G±GÔ<؈AŒF؈rcó^—dt|jd«z}|j||«y)NzIllegal character %sr)ÚreprrÀr4røs   rÚt_errorzCLexer.t_error7s'€Ø$¤t¨A¯G©G°A©JÓ'7Ñ7ˆØ  ‰ C˜Õr)“Ú__name__Ú
__module__Ú __qualname__Ú__doc__rrr!r$r'r.r4r0ÚkeywordsÚ keywords_newrÚkeywordÚlowerÚupperÚtokensÚ
identifierÚ
hex_prefixÚ
hex_digitsÚ
bin_prefixÚ
bin_digitsÚinteger_suffix_optÚdecimal_constantÚoctal_constantÚ hex_constantÚ bin_constantÚbad_octal_constantÚunsupported_c_style_commentÚunsupported_cxx_style_commentÚ simple_escapeÚdecimal_escapeÚ
hex_escapeÚ
bad_escapeÚescape_sequenceÚescape_sequence_start_in_stringÚ cconst_charÚ
char_constÚ wchar_constÚ u8char_constÚ u16char_constÚ u32char_constÚmulticharacter_constantÚunmatched_quoteÚbad_char_constÚ string_charÚstring_literalÚwstring_literalÚu8string_literalÚu16string_literalÚu32string_literalÚbad_string_literalÚ exponent_partÚfractional_constantÚfloating_constantÚbinary_exponent_partÚhex_fractional_constantÚhex_floating_constantÚstatesr¾rrÃrÅrÊrÍÚt_ppline_ignorerÐrÒrÕÚt_pppragma_ignorerØrÚÚt_ignorerÝÚt_PLUSÚt_MINUSÚt_TIMESÚt_DIVIDEÚt_MODÚt_ORÚt_ANDÚt_NOTÚt_XORÚt_LSHIFTÚt_RSHIFTÚt_LORÚt_LANDÚt_LNOTÚt_LTÚt_GTÚt_LEÚt_GEÚt_EQÚt_NEÚt_EQUALSÚ t_TIMESEQUALÚ
t_DIVEQUALÚ
t_MODEQUALÚ t_PLUSEQUALÚ t_MINUSEQUALÚ t_LSHIFTEQUALÚ t_RSHIFTEQUALÚ
t_ANDEQUALÚ    t_OREQUALÚ
t_XOREQUALÚ
t_PLUSPLUSÚ t_MINUSMINUSÚt_ARROWÚt_CONDOPÚt_LPARENÚt_RPARENÚ
t_LBRACKETÚ
t_RBRACKETÚt_COMMAÚt_PERIODÚt_SEMIÚt_COLONÚ
t_ELLIPSISrërîÚt_STRING_LITERALrðròrôrörùrürÿrrrrr    r r rrrrrrrrr!r$rrrrrsé„ñò<òB4òò
òò&òò
;ð €Hð
€Lð€Kàò/ˆØ'.ˆ G—M‘M“OÒ$ð/ð òIˆØAHˆ G˜B˜QK×%Ñ%Ó'¨'°!°"¨+×*;Ñ*;Ó*=Ñ=Ò>ðIð ˜ Ñ $ð;(ñ;€FðF-€Jà€JØ€JØ€JØ€JðaÐØÐ.Ñ.Ð/?Ñ?Ð@RÑRÐSVÑVÐØÐ1Ñ1€NؘjÑ(Ð);Ñ;€LؘjÑ(Ð);Ñ;€Là&Ðð#*ÐØ$+Ð!ð8H€MØ'€NØ6€JØ;€Jà! -Ñ/°Ñ3°NÑBÀ3ÑFÀzÑQÐRVÑV€Oð
'LÐ#à# OÑ3°CÑ7€Kؐ[‘ Ñ$€Jؐj‘.€Kؘ
‘?€Lؘ
‘N€Mؘ
‘N€MØ! +™o¨hÑ6ÐØ˜;Ñ& zÑ1°+Ñ=¸eÑC€Oؘ{Ñ*Ð+BÑBÀ:ÑMÐN^Ñ^€Nð$Ð$CÑCÀCÑG€Kؘ‘_ TÑ)€Nؘ.Ñ(€OؘNÑ*ÐØ˜NÑ*ÐØ˜NÑ*ÐØ˜[™¨Ñ,¨ZÑ7¸ ÑCÀDÑHÐð-€MØ<ÐØÐ2Ñ2°3Ñ6°}ÑDÀ\ÑQÐR_Ñ_Ð`lÑlÐØ3ÐØ# JÑ.¨{Ñ:¸:ÑEÀeÑKÈJÑVÐWbÑbÐØ 
™N¨3Ñ.¨zÑ9¸#Ñ=Ð>UÑUÐVYÑYÐZnÑnÐoyÑyÐð
€Fò    ñ ˆ>Óñ?óð?ñ  Ð Óñóðò
!ò ð€Oò2ò !ò
ðÐòò
4ð €Hò.ð
 €FØ€GØ€GØ€HØ€EØ€DØ€EØ€EØ€EØ€HØ€HØ!€EØ€FØ€FØ€DØ€DØ€DØ€DØ€DØ€Dð€HØ €LØ€JØ€JØ €KØ€LØ €MØ €MØ€JØ €IØ €Jð"€JØ€Lð €Gð €Hð €HØ€HØ€JØ€JØ€GØ€HØ€FØ€GØ#€Jñ ˆ5ƒ\ñóðñ ˆ5ƒ\ñóðð&Ðñ Ð Óñóðñ Ð  Ó!ñó"ðñ ˆ<Óñóðñ ˆ<Óñóðñ Ð Óñóðñ Ð &Ó'ñó(ðñ Ð (Ó)ñó*ðñ ˆ>Óñóðñ Ð Óñóðñ  Ð "Ó#ñó$ðñ ˆ:Óñóðñ ˆ;Óñóðñ ˆ<Óñóðñ ˆ=Óñóðñ ˆ=Óñóðñ ˆ?Óñóðñ ˆ>Óñóðñ ˆ?Óñóðñ Ð Óñóðñ Ð Óñóðñ Ð Óñóðñ
 Ð Óñóðñ ˆ:Óñóðó rr)rÚplyrÚply.lexrrrrrrú<module>r‹sðó
åÝôjˆVõjr