+
     h C  c                   s<    ^ RI t ^ RIHt ^ RIHt  ! R R]4      tR# )    N)lex)TOKENc                   s*	  a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tRtRt/ t] F  t]]]P#                  4       &   K  	  ] F9  t]]]R
,          P%                  4       ]R,          P#                  4       ,           &   K;  	  ]],           R,           tRtRtRtRtRtRtR],           R,           ],           R,           tR],           t]],           ],           t]],           ],           tRtRtRt Rt!Rt"R],           R,           ] ,           R,           ]!,           R,           t#Rt$R]#,           R,           t%R ]%,           R ,           t&R!]&,           t'R"]&,           t(R#]&,           t)R$]&,           t*R ]%,           R%,           t+R&]%,           R',           ]%,           R(,           t,R&]%,           R),           ]",           R*,           t-R+]$,           R,           t.R,].,           R-,           t/R!]/,           t0R"]/,           t1R#]/,           t2R$]/,           t3R,].,           R.,           ]",           ].,           R-,           t4R/t5R0t6R1]6,           R,           ]5,           R2,           ]5,           R3,           t7R4t8R5],           R6,           ],           R7,           ],           R8,           t9R9],           R9,           ],           R,           ]9,           R,           ]8,           R:,           t:Rt;R; t<]=! ]/4      R< 4       t>]=! ]4      R= 4       t?R> t@R? tAR@tBRA tCRB tDRC tER@tFRD tGRE tHR@tIRF tJRGtKRHtLRItMRJtNRKtORLtPRMtQRNtRROtSRPtTRQtURRtVRStWRTtXRUtYRVtZRWt[RXt\RYt]RZt^R[t_R\t`R]taR^tbR_tcR`tdRateRbtfRctgRdthRetiRftjRgtkRhtlRitmRjtnRktoRltpRmtqRntrRotsRpttRqtuRrtv]=! Rs4      Rt 4       tw]=! Ru4      Rv 4       tx]/ty]=! ]74      Rw 4       tz]=! ]:4      Rx 4       t{]=! ]4      Ry 4       t|]=! ]4      Rz 4       t}]=! ]4      R{ 4       t~]=! ]4      R| 4       t]=! ]4      R} 4       t]=! ]+4      R~ 4       t]=! ]&4      R 4       t]=! ]'4      R 4       t]=! ](4      R 4       t]=! ])4      R 4       t]=! ]*4      R 4       t]=! ],4      R 4       t]=! ]-4      R 4       t]=! ]04      R 4       t]=! ]14      R 4       t]=! ]24      R 4       t]=! ]34      R 4       t]=! ]44      R 4       t]=! ]4      R 4       tR tRtV tR# )CLexerzA 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                s    Wn         W n        W0n        W@n        RV n        RV n        \        P                  ! R4      V n        \        P                  ! R4      V n	        R# )a  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.
Z Nz([ \t]*line\W)|([ \t]*\d+)z[ \t]*pragma\W)

error_funcon_lbrace_funcon_rbrace_functype_lookup_funcfilename
last_tokenreZcompileline_patternpragma_pattern)selfr   r   r   r   s   &&&&&6/usr/lib/python3.14/site-packages/pycparser/c_lexer.py__init__ZCLexer.__init__   sQ    $ %,, 0 
 JJ'DE jj):;    c                s@    \         P                   ! RRV /VB V n        R# )zBuilds 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   Zkwargss   &,r   buildZCLexer.build9   s     WW3D3F3
r   c                s(    ^V P                   n        R# )z>Resets the internal line number counter of the lexer.
        N)r   linenor      &r   reset_linenoZCLexer.reset_linenoC   s     

r   c                s<    V P                   P                  V4       R # N)r   input)r   Ztext   &&r   r   ZCLexer.inputH   s    

r   c                sX    V P                   P                  4       V n        V P                  # r   )r   tokenr	   r   r   r   r   ZCLexer.tokenK   s     ****,r   c                s    V P                   P                  P                  R^ VP                  4      pVP                  V,
          # )z2Find the column of the token in its line.
        
)r   lexdataZrfindlexpos)r   r   Zlast_cr   && r   find_tok_columnZCLexer.find_tok_columnO   s5     **$$**4ELLA||g%%r   c                s    V P                  V4      pV P                  W^ ,          V^,          4       V P                  P                  ^4       R# )r    N)_make_tok_locationr   r   Zskip)r   msgr   Zlocations   &&& r   _errorZCLexer._errorZ   s8    **51a[(1+6

r   c                s<    VP                   V P                  V4      3# r   )r   r!   )r   r   r   r   r"   ZCLexer._make_tok_location_   s    d2259::r   :N   N:r%   NNz[a-zA-Z_$][0-9a-zA-Z_$]*z0[xX]z[0-9a-fA-F]+z0[bB]z[01]+zD(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?z(0z)|([1-9][0-9]*Z)z0[0-7]*z0[0-7]*[89]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))z(\\[0-9a-zA-Z._~!=&\^\-\\?'"])z
([^'\\\n]|Z'ZLZu8ZuZUz{2,4}'z('z*\n)|('z*$)z[^'
]+')|('')|('z	[^'\n]*')z
([^"\\\n]|"z*"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(z[FfLl]?)c                s   V P                   P                  VP                  P                  VP                  P                  R7      '       d,   VP                  P                  R4       R;V n        V n        R# V P                  P                  VP                  P                  VP                  P                  R7      '       d   VP                  P                  R4       R# RVn	        V# )z[ \t]*\#)ZpospplineNpppragmaPPHASH)
r   Zmatchr   r   r   beginpp_linepp_filenamer   typer   tr   r   t_PPHASHZCLexer.t_PPHASH"  s    ""177??"GGGGMM(#.22DL4+  &&qwwAGGNN&KKGGMM*%AFHr   c                s    V P                   f   V P                  RV4       R # VP                  P                  R4      P	                  R4      V n        R # )Nz$filename before line number in #liner&   )r+   r$   valueZlstripZrstripr,   r.   r   r   t_ppline_FILENAMEZCLexer.t_ppline_FILENAME0  s;    <<KK>B ww~~c299#>Dr   c                sH    V P                   f   VP                  V n         R # R # r   )r+   r1   r.   r   r   t_ppline_LINE_NUMBERZCLexer.t_ppline_LINE_NUMBER7  s    <<77DL r   c                s   V P                   f   V P                  RV4       MC\        V P                   4      V P                  n        V P
                  e   V P
                  V n        VP                  P                  R4       R# )\nNzline number missing in #lineINITIAL)r+   r$   Zintr   r   r,   r   r*   r.   r   r   t_ppline_NEWLINEZCLexer.t_ppline_NEWLINE@  sY    <<KK6: #DLL 1DJJ+ $ 0 0	i r   c                s    R# )ZlineNr   r.   r   r   t_ppline_PPLINEZCLexer.t_ppline_PPLINEL  s    r   z 	c                *    V P                  R V4       R# )zinvalid #line directiveNr$   r.   r   r   t_ppline_errorZCLexer.t_ppline_errorR  s    -q1r   c                s    VP                   ;P                  ^,          un        VP                   P                  R4       R# )r4   r5   N)r   r   r*   r.   r   r   t_pppragma_NEWLINEZCLexer.t_pppragma_NEWLINEX  s$    	!	i r   c                    V# )Zpragmar   r.   r   r   t_pppragma_PPPRAGMAZCLexer.t_pppragma_PPPRAGMA]      r   c                s    RVn         V# )z.+PPPRAGMASTR)r-   r.   r   r   t_pppragma_STRZCLexer.t_pppragma_STRc  s    r   c                r8   )zinvalid #pragma directiveNr9   r.   r   r   t_pppragma_errorZCLexer.t_pppragma_errorh  s    /3r   c                s~    VP                   ;P                  VP                  P                  R4      ,          un        R# )z\n+r   N)r   r   r1   Zcountr.   r   r   	t_NEWLINEZCLexer.t_NEWLINEq  s!    	!''----r   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\+\+z--z->z\?z\(z\)z\[z\]Z,z\.Z;Z:z\.\.\.z\{c                &    V P                  4        V# r   )r   r.   r   r   t_LBRACEZCLexer.t_LBRACE      r   z\}c                rC   r   )r   r.   r   r   t_RBRACEZCLexer.t_RBRACE  rE   r   c                r<   r   r   r.   r   r   t_FLOAT_CONSTZCLexer.t_FLOAT_CONST  r>   r   c                r<   r   r   r.   r   r   t_HEX_FLOAT_CONSTZCLexer.t_HEX_FLOAT_CONST  r>   r   c                r<   r   r   r.   r   r   t_INT_CONST_HEXZCLexer.t_INT_CONST_HEX  r>   r   c                r<   r   r   r.   r   r   t_INT_CONST_BINZCLexer.t_INT_CONST_BIN  r>   r   c                ,    R pV P                  W!4       R# )zInvalid octal constantNr9   r   r/   r#   r    r   t_BAD_CONST_OCTZCLexer.t_BAD_CONST_OCT  s    &Cr   c                r<   r   r   r.   r   r   t_INT_CONST_OCTZCLexer.t_INT_CONST_OCT  r>   r   c                r<   r   r   r.   r   r   t_INT_CONST_DECZCLexer.t_INT_CONST_DEC  r>   r   c                r<   r   r   r.   r   r   t_INT_CONST_CHARZCLexer.t_INT_CONST_CHAR  r>   r   c                r<   r   r   r.   r   r   t_CHAR_CONSTZCLexer.t_CHAR_CONST  r>   r   c                r<   r   r   r.   r   r   t_WCHAR_CONSTZCLexer.t_WCHAR_CONST  r>   r   c                r<   r   r   r.   r   r   t_U8CHAR_CONSTZCLexer.t_U8CHAR_CONST  r>   r   c                r<   r   r   r.   r   r   t_U16CHAR_CONSTZCLexer.t_U16CHAR_CONST  r>   r   c                r<   r   r   r.   r   r   t_U32CHAR_CONSTZCLexer.t_U32CHAR_CONST  r>   r   c                rK   )zUnmatched 'Nr9   rL   r    r   t_UNMATCHED_QUOTEZCLexer.t_UNMATCHED_QUOTE  s    Cr   c                sN    R VP                   ,          pV P                  W!4       R# )zInvalid char constant %sN)r1   r$   rL   r    r   t_BAD_CHAR_CONSTZCLexer.t_BAD_CHAR_CONST  s    (1772Cr   c                r<   r   r   r.   r   r   t_WSTRING_LITERALZCLexer.t_WSTRING_LITERAL  r>   r   c                r<   r   r   r.   r   r   t_U8STRING_LITERALZCLexer.t_U8STRING_LITERAL  r>   r   c                r<   r   r   r.   r   r   t_U16STRING_LITERALZCLexer.t_U16STRING_LITERAL  r>   r   c                r<   r   r   r.   r   r   t_U32STRING_LITERALZCLexer.t_U32STRING_LITERAL  r>   r   c                rK   )z#String contains invalid escape codeNr9   rL   r    r   t_BAD_STRING_LITERALZCLexer.t_BAD_STRING_LITERAL  s    3Cr   c                s    V P                   P                  VP                  R 4      Vn        VP                  R 8X  d)   V P	                  VP                  4      '       d   RVn        V# )IDTYPEID)keyword_mapZgetr1   r-   r   r.   r   r   t_IDZCLexer.t_ID"  sK    !!%%aggt466T>d33AGG<<AFr   c                sn    R \        VP                  ^ ,          4      ,          pV P                  W!4       R# )zIllegal character %sN)Zreprr1   r$   rL   r    r   t_errorZCLexer.t_error)  s%    $tAGGAJ'77Cr   )r   r   r	   r   r   r   r   r,   r+   r   r   N)$ZAUTOZBREAKZCASEZCHARZCONSTZCONTINUEZDEFAULTZDOZDOUBLEZELSEZENUMZEXTERNZFLOATZFORZGOTOZIFZINLINEZINTZLONGZREGISTERZOFFSETOFZRESTRICTZRETURNZSHORTZSIGNEDZSIZEOFZSTATICZSTRUCTZSWITCHZTYPEDEFZUNIONZUNSIGNEDZVOIDZVOLATILEZWHILEZ__INT128)	Z_BOOLZ_COMPLEXZ	_NORETURNZ_THREAD_LOCALZ_STATIC_ASSERTZ_ATOMICZ_ALIGNOFZ_ALIGNASZ_PRAGMA)Dr]   r^   ZINT_CONST_DECZINT_CONST_OCTZINT_CONST_HEXZINT_CONST_BINZINT_CONST_CHARZFLOAT_CONSTZHEX_FLOAT_CONSTZ
CHAR_CONSTZWCHAR_CONSTZU8CHAR_CONSTZU16CHAR_CONSTZU32CHAR_CONSTZSTRING_LITERALZWSTRING_LITERALZU8STRING_LITERALZU16STRING_LITERALZU32STRING_LITERALZPLUSZMINUSZTIMESZDIVIDEZMODZORZANDZNOTZXORZLSHIFTZRSHIFTZLORZLANDZLNOTZLTZLEZGTZGEZEQZNEZEQUALSZ
TIMESEQUALZDIVEQUALZMODEQUALZ	PLUSEQUALZ
MINUSEQUALZLSHIFTEQUALZRSHIFTEQUALZANDEQUALZXOREQUALZOREQUALZPLUSPLUSZ
MINUSMINUSZARROWZCONDOPZLPARENZRPARENZLBRACKETZRBRACKETZLBRACEZRBRACEZCOMMAZPERIODZSEMIZCOLONZELLIPSISr)   ZPPPRAGMAr?   ))r'   	exclusive)r(   rb   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r   r   r!   r$   r"   ZkeywordsZkeywords_newr_   ZkeywordZlowerZupperZtokensZ
identifierZ
hex_prefixZ
hex_digitsZ
bin_prefixZ
bin_digitsZinteger_suffix_optZdecimal_constantZoctal_constantZhex_constantZbin_constantZbad_octal_constantZsimple_escapeZdecimal_escapeZ
hex_escapeZ
bad_escapeZescape_sequenceZescape_sequence_start_in_stringZcconst_charZ
char_constZwchar_constZu8char_constZu16char_constZu32char_constZmulticharacter_constantZunmatched_quoteZbad_char_constZstring_charZstring_literalZwstring_literalZu8string_literalZu16string_literalZu32string_literalZbad_string_literalZexponent_partZfractional_constantZfloating_constantZbinary_exponent_partZhex_fractional_constantZhex_floating_constantZstatesr0   r   r2   r3   r6   r7   Zt_ppline_ignorer:   r;   r=   Zt_pppragma_ignorer@   rA   Zt_ignorerB   Zt_PLUSZt_MINUSZt_TIMESZt_DIVIDEZt_MODZt_ORZt_ANDZt_NOTZt_XORZt_LSHIFTZt_RSHIFTZt_LORZt_LANDZt_LNOTZt_LTZt_GTZt_LEZt_GEZt_EQZt_NEZt_EQUALSZt_TIMESEQUALZ
t_DIVEQUALZ
t_MODEQUALZt_PLUSEQUALZt_MINUSEQUALZt_LSHIFTEQUALZt_RSHIFTEQUALZ
t_ANDEQUALZ	t_OREQUALZ
t_XOREQUALZ
t_PLUSPLUSZt_MINUSMINUSZt_ARROWZt_CONDOPZt_LPARENZt_RPARENZ
t_LBRACKETZ
t_RBRACKETZt_COMMAZt_PERIODZt_SEMIZt_COLONZ
t_ELLIPSISrD   rF   Zt_STRING_LITERALrG   rH   rI   rJ   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r`   ra   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      s    <B4
&
;H
L K'.GMMO$   AHGBK%%''"+*;*;*==>   $ ;( ;FF -JJJJJ a../??@RRSVV11Nj();;Lj();;L&8 HM'N6J;J!-/3NB3FzQRVVO
 'L##O3C7K[$Jj.K
?L
NM
NM!+oh6;&z1+=eCO{*+BB:MN^^N $$CCCGK_T)N.(ON*N*N*[,Z7CDH -M<2236}D\QR__`ll3#J.{::EeKJVWbb
N3.z9#=>UUVYYZnnoy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\  &    ! " <  <    >    "# $ :  ;  <  =  =  ?  >  ?       
   :  r   r   )r
   Zplyr   Zply.lexr   r   r   r   r   r   <module>rc      s    
  \V \r   